vim常用快捷键

时间:2022-11-25 16:52:41

vim包含三种模式,分别是一般模式、编辑模式和命令模式,一般模式可以用来移动光标、复制粘贴、删除等,编辑模式可以编辑文字,命令模式可以用来保存、退出、显示或隐藏行号等。

一般模式下常用的快捷键

移动光标

移动光标是比较频繁地操作,在vim中只使用方向键也可以移动光标位置,但如果配合合理的快捷键的话,效率会更高。

上下翻页
快捷键 索命
ctrl + u 向上翻半页
ctrl + d 向下翻半页
移动到行号

一般模式下输入:set nu显示行号

快捷键 说明
G 移动到最后一行
gg 移动到首行
nG n为数字,移动到某行。如12G就是移动到第12行
移动到行首或行位
快捷键 说明
0 移动到行首,类似home键
$ 移动到行尾,类似end键

搜索关键字

使用vim可以方便地搜索文件中的关键字,并且关键字还会高亮显示。

快捷键 说明
/keywords 输入关键字并向下搜索
?keywords 输入关键字并向上搜索
n 显示下一个搜索结果
N 显示上一个搜索结果

删除

新手一般会进入编辑模式多次按下删除键来删除内容,但vim提供了很多快捷键可以更加快速地删除想要删除的内容

删除字符

不进入编辑模式也可以直接删除字符

快捷键 说明
x 向后删除,类似普通键盘的del键
X 向前删除,类似普通键盘的backspace键和mac的delete键
删除多个字符

如果一次删除一个字符太慢,vim支持一次删除多个字符

快捷键 说明
nx n为数字。向后删除n个字符
nX n为数字。向前删除n个字符
d0 删除从光标到行首的内容
d$ 删除从光标到行尾的内容
删除整行
快捷键 说明
dd 删除光标所在的一行
ndd n为数字。删除光标所在的向下n行。例如,5dd就是从光标所在行开始向下共删除5行

复制粘贴

快捷键 说明
yy 复制光标所在行
nyy n为数字。从光标所在行开始,向下复制n行。
y1G 复制光标所在行(含)到第一行的所有内容
yG 复制光标所在行(含)到最后一行的所有内容
y0 复制光标所在位置到行首的内容
y$ 复制光标所在位置到行尾的内容
p 如果复制的是整行,则在光标所在行的下方粘贴内容。如果是部分行,则在光标后方粘贴
P 如果复制的是整行,则在光标所在行的上方粘贴内容。如果是部分行,则在光标后方粘贴

如果复制的是整行,则小写p在下方粘贴内容,大写P上上方粘贴。如果复制的是部分行,则大小写的p都在光标后方粘贴内容

undo和redo

如果上面的删除、粘贴等操作有误,vim还提供了undo和redo的功能

快捷键 说明
u undo
ctrl + r redo

切换到编辑模式

编辑模式允许用户直接输入文字、删除文字,从一般模式切换到编辑模式很简单,只需要在一般模式下输入字母i就可以了。但vim还有几个更加高效的快捷键,使进入编辑模式时光标可以定位到一个更加合适的位置,这样就可以直接输入了。

快捷键 说明
i 进入编辑模式,光标不变
A 进入编辑模式,光标定位到所在行的最后一个字符后面
o (小写字母o)进入编辑模式,在光标所在行下方新建一行并将光标移到此行
O (大写字母O)进入编辑模式,在光标所在行上方新建一行并将光标移到此行

按esc键退出编辑模式

命令模式常用快捷键

快捷键 说明
:w 将数据写入文件,或者理解为保存
:q 退出vim
:q! 强制退出vim。如果文件内容已编辑却未保存,且用户想放弃保存并退出,则使用该快捷键
:wq 保存并退出
:w filename (中间有空格)另存为另一个文件
:set nu 显示行号
:set nonu 不显示行号

块选择(visual block)

对于上面的有些操作,例如复制n行(nyy),删除n行(ndd),以及复制片段(如y0,y )(d0d ),虽然很库,但比较容易出错,因为不太直观。vim的块选择机制可以更加直观地来操作选择、复制粘贴、删除等操作。

进入块选择模式后,左下角显示-- VISUAL --字样,并且移动后被选中的文字有选中的样式,比较容易分辨到底选择了哪些东西。

快捷键 说明
v 进入块选择的普通模式,上下左右移动光标都可以改变选中区域
V 进入块选择的行选择模式,总是选中整行,上下移动光标可改变选中的行数
ctrl + v 进入块选择的矩形选择模式,上向左右移动光标可改变选中的矩形区域
y 复制选中区域,并进入普通模式
d 删除选中区域,并进入普通模式
esc 放弃已选择区域,退出块选择模式,并进入普通模式

在普通模式下,使用p或P进行粘贴。

多窗口功能

多窗口功能允许vim同时打开和编辑多个文件。

快捷键 说明
:sp filename 在另一个窗口中打开另一个文件。如果不加filename的话,则再次打开当前文件
ctrl + w + 上下方向键 切换窗口。如果是mac的话,需要按下ctrl键后连续按两次w键来切换窗口