vim命令
前言
用了几年vim,但是有些命令少用后便会忘记,时常需要百度,干脆在这里累积,方便直接查找。
使用utools辅助。
便捷唯快不破。
下面键入的命令在实际使用时混合搭配使用,慢慢摸索即可。
原文:李柱明博客
vim简要知识
vim键盘简图

该图源自百度,很久前的笔记了,没有追查
vim模式
- 普通模式:Vim 启动后的默认模式,用来移动光标、删除文本、覆盖输入文本、恢复操作、粘贴文本等等。
- 插入模式:输入
i或a或o进入插入模式,在这个模式下敲击键盘会往文字缓冲区增加文字,相当于普通编辑器的编辑模式。 - 可视模式:选择文本,可以行选、块选和依次选择,选择后可以进行复制、删除、排序等操作。
- 命令模式:执行内部和外部命令,通过
:、/、?、:!可以进入命令模式,分别对应的是:执行内部命令、向上或向下搜索、执行外部命令。
vim日常操作
以下描述,默认情况都是在普通模式下的键入。
只描述本人日常使用的,一切少用和不常见的可以参考上图或百度。
光标移动
上下左右:
普通模式和可视模式下,使用h(←)、j(↓)、k(↑)、l(→)实现。

如果需要在插入模式下实现光标移动,可以在vimrc文件配置上添加以下配置热键映射(入门的同学忽略这个)
- 个人习惯键盘默认的上下左右键。
单词方式移动光标(不区分大小写):
b/B:前一个单词词首。e/E:下一个单词词尾。w/W:下一个单词词首。
行指定字符:
fx:搜索光标后字符x并跳转。Fx:搜索光标前字符x并跳转。

行首行尾:
home和end键:行首尾。虽然不属于vim范畴,但是作者也经常使用。特别是搭配shift键用来选中文本。^和$,也是行首尾。|(是shift+\得出的,不是英文字母I):行首。

句和段:
(和):上一句和下一句。{和}:上一段和下一段。
文件某个位置:
gg:文件头。G:文件末。- n
gg:跳转到第n行,n为数字。

跳到函数首尾:
[和]都是以每个函数的首尾括号为基准。
相同方向跳到函数左括号(开头)。
相反方向跳到函数右括号(尾部)。
第一个方向决定前后,第二个方向决定首尾。
前面还可以添加数字n,表示n个。
n不填时默认为1。
n[[:前n个 前:(。
n[]:前n个 后:)。
n]]:后n个 前:(。
n][:后n个 后:)。
ctrl+T:回到上一个光标位置。
屏幕移动
主要是浏览代码时使用。
翻页:
ctrl+b:上一页。(Backward)ctrl+f:下一页。(Forward)ctrl+u:上半一页。(up)ctrl+d:下半一页。(down)
当前屏光标位置:
H:当前屏顶。(High)M:当前屏中。(Middle)L:当前屏底。(Low)
光标滚屏:
zt:光标代码滚到屏顶。(top)zz:光标代码滚到屏中。zb:光标代码滚到屏底。ctrl+e:前滚一行。ctrl+y:后滚一行。
文本修改
进入插入模式:
i:在光标所在位置插入。I:在行首插入。a:在在光标后插入。A:在行尾插入。o:在光标所在位置的下一行插入。O:在光标所在位置的上一行插入。
删除:
x:删除字符。
x:删除当前字符。- n
x:删除包括当前字符后的n个字符。 X:删除光标前一个字符。- n
X:删除当前光标前的n个字符。
d:需要配合使用。
-
dd:删除整行。 -
n
dd:删除n行。 -
因为
d是删除操作,需要搭配其它键使用,其删除就是删除到后面键入命令后光标的位置如:dfx:从光标起删除到本行后面第一个字符x的位置。diw:删除光标所在单词。- 还有
dw、db、d end键等等都可以自由发挥。
dix和dax的使用,是删除x内部和删除包括x的内部:
di}:就是删除光标所在的{}内部所有内容。da}:相对di},da}把{}也删除。- 其x可以搭配:
w、s、p、"、}、]等等辅助字符,实际用到时再了解。
diw删除一个单词示例:

di)删除()内容示例:

df(删除到( :

复制粘贴
y:复制。
- 搭配
v键入可视模式后选中文本,键入y就是复制选中的文本了。 yy:复制当前行。- n
yy:当前行起,复制n行。 y搭配贯标移动指令进行复制。y搭配w、s、p、"、}、]等等辅助字符使用。- 注意:前面的删除是删除后带赋值作用的。
p:粘贴。
yi{复制p粘贴{}内容示例:

撤销:
u:撤销上一个操作。
vim可视模式
v
v:进入可视模式。即是选中文本。
搭配光标移动使用,这个比较简单。
高级点的就是搭配w、s、p、"、}、]等等辅助字符使用。
再搭配y、d这些指令使用。实现复制、删除功能。
ctrl+v
- ctrl+v:进入可视模式
- ctrl+v+%:选中大括号
- ctrl+v+I:行列插入
配合光标移动相关命令使用。如在多行尾部修改:

重复技巧
Vim 对很多简单操作已经定义了重复键:
;:重复最近的字符查找(f、t等)操作。,:重复最近的字符查找操作,反方向。n:重复最近的字符串查找操作(/和?)。(vscode中直接/进入命令搜索字符串)N:重复最近的字符串查找操作(/和?),反方向。(vscode中直接/进入命令搜索字符串).:重复执行最近的修改操作。

多窗口
多个窗口操作同一个文件。
:sp:水平分屏。(split)
:vs:垂直分屏。(vsplit)
注意,部分功能渲染在vscode可能失效,练习的同学转linux下的vim。
操作下面处理前先键入ctrl+w:
主要:
- 加方向键(h、j、k、l、
等等)可以在窗口之间跳转 w:跳转到下一个(往右和往下)窗口,如果已经是右下角的窗口,则跳转到左上角的窗口W:跳转到上一个(往左和往上)窗口,如果已经是左上角的窗口,则跳转到右下角的窗口n或:new:打开一个新窗口c或:close:关闭当前窗口;当前窗口如果已经是最后一个则无效q或:quit:退出当前窗口,当最后一个窗口退出时则退出 Vimo或:only:只保留当前窗口,关闭其他所有窗口s和:split:作用相同,把当前窗口横向一分为二v和:vsplit:作用相同,把当前窗口纵向一分为二=:使得所有窗口大小相同(当调整过终端或图形界面 Vim 的窗口大小后特别有用)
了解:
_:设置窗口高度,命令前的数字表示高度行数,默认为纵向占满(想专心编辑某个文件时很有用)|:设置窗口宽度,命令前的数字表示宽度列数,默认为横向占满+:增加窗口的高度,命令前的数字表示需要增加的行数,默认为 1-:减少窗口的高度,命令前的数字表示需要减少的行数,默认为 1>:增加窗口的宽度,命令前的数字表示需要增加的列数,默认为 1- <
lt>(提醒,我们用表示“<”键)减少窗口的宽度,命令前的数字表示需要增加的列数,默认为 1。
简单示例:

更便捷
自己定制键入。

浙公网安备 33010602011771号