作为一名后端码农,常用的 vim 快捷键,你了解多少呢?
移动光标
1、 左移h
,右移l
,下移j
,上移k
2、 向下翻页Ctrl + f
,向上翻页Ctrl + b
3、 向下翻半页Ctrl + d
,向上翻半页Ctrl + u
4、 移动到行尾$
,移动到行首0
(数字),移动到行首第一个字符处^
5、 移动光标到下一个句子)
,移动光标到上一个句子(
6、 移动到段首{
,移动到段尾}
7、 移动到下一个词w
,移动到上一个词b
8、 移动到文档开始gg
,移动到文档结束G
9、 移动到匹配的{}
、()
、[]
处%
10、 跳到第n行ngg
或nG
或:n
11、 移动光标到屏幕顶端H
,移动到屏幕中间M
,移动到底部L
12、 读取当前字符,并移动到本屏幕内下一次出现的地方*
13、 读取当前字符,并移动到本屏幕内上一次出现的地方#
查找替换
1、 光标向后查找关键字#
或者g#
2、 光标向前查找关键字*
或者g*
3、 当前行查找字符fx
/Fx
/tx
/Tx
4、 基本替换:s/s1/s2
(将下一个s1
替换为s2
)
5、 全部替换:%s/s1/s2
6、 只替换当前行 :s/s1/s2/g
7、 替换某些行 :n1,n2 s/s1/s2/g
8、 搜索模式为/string
,搜索下一处为n
,搜索上一处为N
9、 指定书签mx
,但是看不到书签标记,而且只能用小写字母
10、 移动到某标签处x
11、 移动到上次编辑文件的位置 .
. 代表一个任意字符
* 代表一个或多个字符的重复
编辑操作
1、 光标后插入a
,行尾插入A
2、 后插一行插入o
,前插一行插入O
3、 删除字符插入s
,删除整行插入S
4、 光标前插入i
,行首插入I
5、 删除一行dd
,删除后进入插入模式cc
或者S
6、 删除一个单词dw
,删除一个单词进入插入模式cw
7、 删除一个字符x
或者dl
,删除一个字符进入插入模式s
或者cl
8、 粘贴p
,交换两个字符xp
,交换两行ddp
9、 复制y
,复制一行yy
10、 撤销u
,重做Ctrl + r
,重复上一次命令.
11、 智能提示Ctrl + n
或者Ctrl + p
12、 删除motion
跨过的字符,删除并进入插入模式c{motion}
13、 删除到下一个字符跨过的字符,删除并进入插入模式,不包括x
字符ctx
14、 删除当前字符到下一个字符处的所有字符,并进入插入模式,包括x
字符cfx
15、 删除motion
跨过的字符,删除但不进入插入模式d{motion}
16、 删除motion
跨过的字符,删除但不进入插入模式,不包括x
字符dtx
17、 删除当前字符到下一个字符处的所有字符,包括x
字符dfx
18、 如果只是复制的情况时,将12-17条中的c
或d
改为y
19、 删除到行尾可以使用D
或C
20、 拷贝当前行yy
或者Y
21、 删除当前字符x
22、 粘贴p
23、 可以使用多重剪贴板,查看状态使用:reg
,使用剪贴板使用",
例如复制到w寄存器,"wyy
或者使用可视模式v"wy
24、 重复执行上一个操作使用.
25、 使用数字可以跨过n个区域,如y3x
,会拷贝光标到第三个x
之间的区域,3j
向下移动3行
26、 在编写代码的时候可以使用]p
粘贴,这样可以自动进行代码缩进
27、 >>
缩进所有选择的代码
28、 <<
反缩进所有选择的代码
29、 gd
移动到光标所处的函数或变量的定义处
30、 K
在man里搜索光标所在的词
31、 合并两行J
32、 若不想保存文件,而重新打开:e!
33、 若想打开新文件:e filename
,然后使用Ctrl + ^
进行文件切换
窗口操作
1、 分割一个窗口:使用命令split
或者:vsplit
,可以在水平或垂直方向上分割窗口。
2、 创建一个窗口:使用命令new
或者:vnew
,可以创建一个新的空白窗口。
3、 在新窗口打开文件:使用命令sf {filename}
,可以在新窗口中打开指定的文件。
4、 关闭当前窗口:使用命令close
,可以关闭当前的活动窗口。
5、 仅保留当前窗口:使用命令only
,可以关闭除了当前窗口之外的所有其他窗口,只保留当前窗口。
6、 切换到左边窗口:使用组合键Ctrl + w, h
,可以切换到左边的窗口。
7、 切换到右边窗口:使用组合键Ctrl + w, l
,可以切换到右边的窗口。
8、 切换到上边窗口:使用组合键Ctrl + w, k
,可以切换到上边的窗口。
9、 切换到下边窗口:使用组合键Ctrl + w, j
,可以切换到下边的窗口。
10、 切换到顶部窗口:使用组合键Ctrl + w, t
,可以切换到最上方的窗口。
11、 切换到底部窗口:使用组合键Ctrl + w, b
,可以切换到最下方的窗口。
宏操作
1、开始记录宏操作q[a-z]
,按q结束,保存操作到寄存器[a-z]中
2、@[a-z]
执行寄存器[a-z]
中的操作
3、@@
执行最近一次记录的宏操作
可视操作
1、进入块可视模式ctrl + v
2、进入字符可视模式v
3、进入行可视模式V
4、删除选定的块d
5、删除选定的块然后进入插入模式c
6、在选中的块同是插入相同的字符I<String>ESC
跳到声明
1、[[
:向前跳到顶格的第一个{
。
2、[]
:向前跳到顶格的第一个}
。
3、]]
:向后跳到顶格的第一个{
。
4、][
:向后跳到顶格的第一个}
。
5、[{
:跳到当前代码块的开头。
6、]}
:跳到当前代码块的结尾。
挂起操作
1、挂起 Vim:使用组合键 Ctrl + z
或者执行命令 :suspend
,可以将 Vim 挂起,返回到终端或 shell。
2、查看任务:在 shell 中输入命令 jobs
,可以查看当前正在运行或挂起的任务。
3、恢复任务:使用命令 fg [job number]
将后台程序放到前台运行,或者使用命令 bg [job number]
将前台程序放到后台运行。
4、执行 shell 命令:使用命令 :!command
,可以在 Vim 中执行 shell 命令,command
是要执行的命令。
5、开启 shell:使用命令 :shell
,可以在 Vim 中开启一个新的 shell,可以在其中执行其他命令。要退出该 shell,可以输入 exit
。
6、保存 Vim 状态:使用命令 :mksession name.vim
,可以将当前 Vim 状态保存到名为 name.vim
的会话文件中。
7、恢复 Vim 状态:使用命令 :source name.vim
,可以从会话文件 name.vim
中恢复 Vim 的状态。
8、启动 Vim 时恢复状态:使用命令 vim -S name.vim
,可以启动 Vim 并从会话文件 name.vim
中恢复状态。
来一张键位图,好好学习。