文章目录
一、Vim支持模式
普通模式
:打开文件时的默认模式,在其他模式下按Esc
键都可返回到该模式。插入模式
:在普通模式下按i
/a
/o
键进入该模式,进行文本编辑操作。命令行模式
:在普通模式下输入:
后会进入该模式,在该模式下输入命令,敲回车执行命令。可视化模式
:在普通模式下按v
/V
/Ctrl+v
键会进入可视化模式,在该模式下移动光标可以选中一块文本。
二、Vim常用命令
1. 光标移动
k
:光标向上移动一个字符。j
:光标向下移动一个字符。h
:光标向左移动一个字符。l
:光标向右移动一个字符。w
:光标移动到下一个单词的开头。W
:光标移动到下一个单词的开头(忽略标点符号)。b
:光标移动到上一个单词的开头。B
:光标移动到上一个单词的开头(忽略标点符号)。e
:光标移动到下一个单词的词尾。E
:光标移动到下一个单词的词尾(忽略标点符号)。ge
:光标移动到上一个单词的词尾。3w
:指定光标移动3次,移动到下下个单词的开头。$
:光标移动到当前行的行尾。0
:光标移动到当前行的行首。^
:光标移动到当前行的第一个非空字符。3|
:光标移动到当前行的第3列。f,
:光标移动到当前行的第1个字符,
上,;
继续移动到下一个。3f,
:光标移动到当前行的第3个字符,
上。t,
:光标移动到当前行的第1个字符,
前。3t,
:光标移动到当前行的第3个字符,
前。%
:符号间的移动,在()
/[]
/{}
之间跳跃。*
:查找光标所在处的单词,向下查找。#
:查找光标所在处的单词,向上查找。10G
:光标跳转到第10行。gg
:光标移动到文件的开头。G
:光标移动到文件的末尾。H
:光标移动到当前屏幕的开始。M
:光标移动到当前屏幕的中间。L
:光标移动到当前屏幕的末尾。Ctrl+g
:查看光标的位置状态。Ctrl+u
:光标向上半屏滚动。Ctrl+d
:光标向下半屏滚动。Ctrl+f
:光标向前全屏滚动。Ctrl+b
:光标向后全屏滚动。
2. 文本操作
i
:在光标前面插入字符。I
:在当前行的行首插入字符。a
:在光标后面追加字符。A
:在当前行的行尾追加字符。o
:在光标的下一行插入字符。O
:在光标的上一行插入字符。x
:剪切光标所在处的字符。X
:剪切光标左边的字符。dw
:删除当前单词。dd
:删除当前行。2dd
:删除当前行和下一行。ddp
:置换当前行和下一行。dt,
:删除,
前所有内容。yw
:复制当前单词。yy
:复制当前行。2yy
:复制当前行和下一行。p
:粘贴,注意是粘贴到光标后面。cc
:删除当前行并进入编辑模式。cw
:删除当前字,并进入编辑模式。c$
:擦除从当前位置至行末的内容,并进入编辑模式。s
:删除当前字符并进入编辑模式。S
:删除光标所在行并进入编辑模式。xp
:交换当前字符和下一个字符。r,
:置换当前字符为,
J
:删除一个分行符,将当前行与下一行合并。~
:切换大小写,当前字符。==
:自动缩进当前行。>>
:将当前行右移一个单位(一个tab符)。<<
:将当前行左移一个单位(一个tab符)。u
:撤销上一条命令。Ctrl+r
:重做撤销的命令。.
:重复执行上一条命令。
3. 查找置换
:/string
:在普通模式下输入/string并回车,即可正向往下查找字符串string,n
下一个,N
上一个。:?string
:输入?string并回车,即可反向往上查找字符串string,n
上一个,N
下一个。:s/old/new
:将当前行的第一个字符串old替换为new。:s/old/new/g
:将当前行的所有字符串old替换为new。:%s/old/new/g
:将文件中所有字符串old替换为new。:%s/^old/new/g
:将文件中所有以old开头的字符串替换为new。
4. 保存退出
:q
:若文件没有修改,则直接退出。:q!
:若文件已修改,则放弃修改,退出。:wq
:若文件已修改,则保存修改,退出。:x
:若文件已修改,则保存修改,退出。:e!
:若文件已修改,则放弃修改,恢复文件打开时的状态。ZZ
:普通模式保存修改,退出。
5. 多文件编辑
vim file1..
:同时打开多个文件。:args
:显示当前编辑文件。:next
:切换到下个文件。:prev
:切换到前个文件。:next!
:不保存当前编辑文件并切换到下个文件。:prev!
:不保存当前编辑文件并切换到上个文件。:wnext
:保存当前编辑文件并切换到下个文件。:wprev
:保存当前编辑文件并切换到上个文件。:first
:定位首文件。:last
:定位尾文件。Ctrl+^
:快速在最近打开的两个文件间切换。
6. 多窗口编辑
:split[sp]
:把当前文件水平分割。:vsplit[vsp]
:把当前文件垂直分割。:split[sp] file
:把当前窗口水平分割。:vsplit[vsp] file
:把当前窗口垂直分割。:close
:关闭当前窗口。:only
:只显示当前窗口,关闭所有其他的窗口。:all
:打开所有的窗口。:vertical all
:打开所有的窗口,垂直打开。:qall
:对所有窗口执行:q操作。:qall!
:对所有窗口执行:q!操作。:wall
:对所有窗口执行:w操作。:wqall
:对所有窗口执行:wq操作。Ctrl+w h
:跳转到左边的窗口。Ctrl+w j
:跳转到下面的窗口。Ctrl+w k
:跳转到上面的窗口。Ctrl+w l
:跳转到右边的窗口。Ctrl+w w
:跳转到下一个窗口。Ctrl+w t
:跳转到最顶上的窗口。Ctrl+w b
:跳转到最底下的窗口。Ctrl+w H
:将当前窗口移动至左边。Ctrl+w J
:将当前窗口移动至下面。Ctrl+w K
:将当前窗口移动至上面。Ctrl+w L
:将当前窗口移动至右边。Ctrl+w c
:关闭当前的窗口。Ctrl+w q
:关闭当前的窗口(最后一个)。
7. 多标签编辑
:tabedit file
:在新标签中打开文件。:tab split file
:在新标签中打开文件。:tabp
:切换到前一个标签。:tabn
:切换到后一个标签。:tabc
:关闭当前标签。:tabo
:关闭其他标签。gt
:到下一个标签。gT
:到上一个标签。0gt
:跳到第一个标签。5gt
:跳到第五个标签。
8. 目录操作
vim .
:打开当前目录。vim [dir]
:打开指定目录。:Exp[Explore]
:打开当前文件的目录(水平)。:Vexp[Vexplore]
:打开当前文件的目录(垂直)。<Enter>
:当前窗口打开文件,输入:b#
返回。o
:新窗口打开文件,输入Ctrl+w c
关闭。t
:新标签打开文件,输入Ctrl+w c
关闭。
9. 运行命令
:sh
:可以运行相当于在字符模式下,用exit
,Ctrl+D
返回VIM。:![command]
:运行Shell命令,结束后自动回到VIM。:!make
:直接在当前目录下运行make
指令。
10. 可视化操作
v
:字符选择模式,选中光标经过的所有字符。V
:行选择模式,选中光标经过的所有行。Ctrl+v
:块选择模式,选中一整个矩形框表示的所有文本。y,x,d,p
:可视化模式下的复制,剪切,删除,粘贴。<,>,=
:可视化模式下的缩进,对齐。
11. 其他命令
:set nu
:显示行号。:set nonu
:关闭显示行号。:set hls
:高亮显示搜索中匹配的内容。:set nohls
:关闭高亮显示搜索中匹配的内容。