【Linux】vim

本篇文章将介绍vim编辑器的一些基本用法。

vim

vim的三种模式

vim是一个多模式的文本编辑器,这里将介绍三种模式

命令模式 :在其他模式下,按 esc 进入命令模式。在此模式下,我们可以输入命令来对文本进行控制,例如跳转到某一行,跳到一行的开头或者末尾等

插入模式 :在命令模式时,输入 aio 其中任意一个进入插入模式,注意是小写。插入模式用户可以对文本进行编辑。根据输入不同,进入插入模式时也会有所区别

a:光标退后一个字符,进入插入模式

i:在当前光标进入插入模式

o:另起一行,进入插入模式

底行模式 :在命令模式下,输入 shift + ; 也就是冒号: 进入底行模式。在此模式下,我们可以输入命令让vim与shell进行交互。例如,set nu显示行号,set nonu关闭行号

命令模式


常用命令如下:

表中的n代表任意数字,可以不输入,不输入 n 就默认为 1;注意命令大小写

命令名称 按键 作用
复制 n + yy 复制当前行;连续复制n行
粘贴 n + p 在光标的下一行粘贴;将复制内容粘贴 n 次
撤销 n + u 对前 n 次操作进行撤销
撤销一个撤销 ctrl + r 如果你对上个撤销感到后悔,就可以用这个命令撤销一个撤销;也可以与 n 连用
剪切/删除 n + dd 剪切/删除指定行;可以多行操作
定位到行首 ^ 将光标移动到一行的开始
定位到行尾 $ 将光标移动到一行的末尾
定位到文本首 gg 将光标移动到整个文本的开头位置
定位到文本末 G 将光标移动到整个文本的最后一行
定位到任意行 n + G 将光标移动到第 n 行
移动光标 h,j,k,l h(左) j(下) k(上) l(右);也可与 n 连用
光标后移一个单词 w 将光标向后移动一个单位,单位为单词
光标前移一个单词 b 将光标向前移动一个单位,单位为单词
快速切换大小写 ~ 将光标选中的字母切换大小写,小写变大写,大写变小写
向后删除 n + x(小写) 删除光标后的 n 个字符
向前删除 n + X(大写) 删除光标前的 n 个字符
替换字符 n + r + 要替换的字符 替换光标指定的字符;可以替换 n 个
进入替换模式 R 在此模式下,输入的字符将替换光标指定的字符
保存并退出 ZZ(大写) 修改文本后,可以使用此命令保存文本,退出 vim 编辑

关于保存退出误按成 CTRL + zz的问题

误按时会退出vim,会显示如下界面

再次用 vim 打开文件,显示如下,存在一个swp结尾的临时文件用来存储没有保存的数据

然后输入R,回车,就可以恢复文件了。但是当我们保存退出,再用 vim 打开此文件时,又会显示这个界面

我们只需要删除临时文件,这个界面就不会再出现了

底行模式


常用命令:

命令名称 按键 说明
保存 w 保存修改后的文本
退出 q 退出vim编辑器
保存并退出 wq 保存修改后的文本并退出vim编辑器
强制 有一些操作并不会直接执行,比如没有保存就退出,此时使用 q! 就可以不保存强制退出
搜索 /关键字 将文本中的关键字高亮
执行shell命令 !command 可以在不退出编辑器的情况下,执行shell命令
分屏 vs 文件名 分屏展示不同文件

!command 演示

输入 !gcc test.c 编译文件

输入!ls查看形成的可执行文件

运行可执行文件

分屏演示

可以使用 CTRL + ww来切换不同文件

插入模式


编辑文本没什么可说的,那就了解一下如何批量化注释和取消注释吧

批量注释

打开文件,命令行模式,输入 CTRL + v 进入 Visual Block 模式。这时候就可以批量框选了,把要注释的行选上,这里要使用h、j、k、l移动光标

接着 SHIFT + i进入插入模式,输入//

再退出编辑模式,进入命令模式,可以看到已经注释完成

批量取消注释

同样地,CTRL+ v进入 visual block模式,把注释符都框选上

框选完毕后,直接 d 就可以取消注释了

vim的配置


原理

vim在执行程序时,也会读取若干配置文件,例如 .vimrc

作用

当 vim 读取到配置文件中的内容时,也会实现相应功能,例如:显示行号,自动补齐,自动缩进等

配置方法

到用户家目录,将所有文件列出,就会发现 .vimrc文件,没有的话就自己创建

编辑配置文件

shell 复制代码
vim .vimrc

在文件输入自己需要的功能就可以了,例如显示行号

shell 复制代码
set nu

如果还想实现其他功能,可以百度 vim 的配置代码

如果你懒得配置,使用指令一键配置

shell 复制代码
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

效果

相关推荐
明明跟你说过17 分钟前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
Komorebi.py1 小时前
【Linux】-学习笔记05
linux·笔记·学习
Mr_Xuhhh1 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
内核程序员kevin4 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
朝九晚五ฺ9 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream9 小时前
Linux的桌面
linux
xiaozhiwise9 小时前
Makefile 之 自动化变量
linux
Kkooe10 小时前
GitLab|数据迁移
运维·服务器·git
久醉不在酒10 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql