本篇文章将介绍vim编辑器的一些基本用法。
vim
vim的三种模式
vim是一个多模式的文本编辑器,这里将介绍三种模式
命令模式 :在其他模式下,按 esc
进入命令模式。在此模式下,我们可以输入命令来对文本进行控制,例如跳转到某一行,跳到一行的开头或者末尾等
插入模式 :在命令模式时,输入 a
、i
、o
其中任意一个进入插入模式,注意是小写。插入模式用户可以对文本进行编辑。根据输入不同,进入插入模式时也会有所区别
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
效果