但行好事
莫论前程❤

Vim常用命令汇总

命令历史

​ 以:和/开头的都有历史记录,可以首先键入:或/后按上下键来选择历史命令

注意: 可视模式先选择内容 需要使用键盘来控制, SecureCRT等远程连接工具的鼠标选中无效

vim的几种模式

模式进入操作左下角显示
正常可按Esc(或接着: )进入命令行文件名或为空
插入正常模式下,按 i,o,a(或者大写)进入– INSERT –
可视正常模式下,按v可以进入– VISUAL –
视行正常模式下,整行整行选中,然后按 Ctrl+v可以进入– VISUAL BLOCK –
替换正常模式下(按Esc),按R进入,按Esc退出– REPLACE –

启动vim

命令含义
vim直接启动vim
vim file启动vim并创建名为filename的文件
vim file1 file2 file3启动vim并同时打开多个文件
vim -r file恢复上次异常退出的文件
vim -R file只以只读的方式打开文件,但是可以强制保存
vim -M file只以只读的方式打开文件,但是不可强制保存(完全只读,不能做任何的修改,也不能保存甚至强制保存)

保存与退出

下面的操作都比较重要,也常用到,含有!的皆有强制之意.

命令含义
:w(:w +filename)保存文件内容,但不退出vim,将内存缓冲区的数据,写入到启动vim时指定文件中。加fliename 表示保存到相应文件(后面皆是如此)
:w!(:w +filename)强制写(覆盖)原有文件,特别对于源文件访问权限不允许时(例如原有文件为只读文件)。仅当用户为文件的user,root不受限制。
:wq与:w有相同之处,保存文件内容后,退出vim
:wq!(:w +filename)强制保存文件内容后,退出vim
ZZ功能同:wq,只需进入正常模式(Esc)后按两个Z(大写)无需:也无需Enter
:q未做任何编辑处理而退出vim,可使用此命令。如果已经做过编辑,vim不允许用户使用q命令退出并抛出警告:No write since last change (:quit!overrides)
:q!强制退出编辑器,放弃编辑处理的结果。适用于确实不需要保存文件的时候
:f filename改变编辑的文件名,这时候再保存相当于另存为
:save as filename另存为

光标移动

在insert模式下

  • 空格键,右移
  • 退格键,左移

vim中分段默认Enter隔开一行,正常模式下,hljk分别代表“左右下上”(注意是下上,不是上下)

命令含义
h左移
l右移
j下移
k上移
0 (零)移到行首
$移到行尾
gg移到文件开头
G移到文件末尾
nG移到第n行
n%移到文件n%的位置
H移到当前屏幕最顶上一行
L移到当前屏幕最底下一行
M移到当前屏幕最中间一行
移到上句
移到下句
移到上段
移到下段
fa移到本行下个a
Fa移到本行上个a
e(E)移到下个单词(包括标点),光标停留在单词的末尾(若为大写忽略标点)
b(B)移到上个单词(包括标点),光标停留在单词首字母 (若为大写忽略标点)
Ctrl+f(forward)下翻一屏
Ctrl+b(backward)上翻一屏
Ctrl+d(down)下翻半屏
Ctrl+ u(up)上翻半屏

复制命令

命令含义
yvisual模式下复制选中的所有内容(先切换到visual模式)
yy(或者Y)复制当前整行
ygg复制光标以前所有行
yG复制光标以后所有行
y$复制光标字符到行尾
y0复制光标字符到行首

粘贴命令

  • p(小写) 在光标之后粘贴
  • P(大写) 在光标之前粘贴

插入命令

命令含义
i在当前位置的前面,插入
a在当前位置的后面,插入
I在当前行的行首,插入
A在当前行的行尾,插入
o当前行行后,插入一行
O当前行行前,插入一行

删除(剪切)命令

(与上面复制,同理,多了个x而已)

命令含义
d删除visual模式下,选中的所有内容(先切换到visual模式)
dd删除当前整行
dgg删除光标以前所有行
dG删除光标以后所有行
d$(或者D)删除光标字符到行尾
d0删除光标字符到行首
dx删除当前字符
d3x(同时按)删除光标向后3个字符
d[n]h删除光标左边 一个或多个字符
d[n]l删除光标右边 一个或多个字符
10dd删除10行(包括本行)
:1,10d删除1-10行
:10,$d删除第10行及之后的所有行
:1,$d删除所有行(即全部内容)

撤销与恢复

在正常模式下

命令含义
u(或者undo)撤销
:undo 5撤销5个改变
:undolist你的撤销历史
U撤销当前行中的改动
Ctrl+r恢复
:earlier 3s/3m/3h回退
:later 5s/5m/5h前进

查找命令

命令含义
/text:在光标后面 文本中查找 text
?text:在光标前面 文本中查找 text
n:向前查找下一个(已经查找到第一个)
N:向后查找下一个(已经查找到第一个)
set ignorecase忽略大小写的查找
set noignorecase不忽略大小写查找
set hlsearch高亮搜索结果,所有结果都显示高亮
set nohlsearch关闭高亮搜索
nohlsearch关闭当前高亮显示,再次搜索或者按n(或N)时,再次显示高亮
/pattern/+number:光标停在pattern行后面第number行上
/pattern/-number:光标停在pattern行前面第number行上

窗口命令

多窗口中的文件命令
命令含义
:e file(e和open一样,可替代)关闭当前编辑的文件(需先保存),打开新文件(如果文件修改未保存,vim会发出警告
:e! file强制关闭当前编辑文件(放弃保存),打开新文件
:e#回到刚才编辑的文件(文件切换,需先保存当前文件),实用
:e!#强制回到刚才编辑的文件(放弃保存)
:split file(new file)新窗口中打开文件(窗口是横向的)
:vsplit file(new file)新窗口中打开文件(窗口是纵向的)
:bn切换到下一个文件(其实是缓冲区)
:bp切换到上一个文件(其实是缓冲区)

调整窗口位置

命令含义
Ctrl+w p切换到前一个窗口
Ctrl+w h(l,j,k)(一般Ctrl+w j(k)多一些)切换到左(右,下,上)窗口
Ctrl+w H(L,J,K)将当前窗口 移动到最左(右,下,上)面
Ctrl+w r旋转窗口的位置
Ctrl+w T将当前窗口移动到新的标签页上

调整窗口大小

命令含义
:browse e打开一个文件浏览器,让你选择要编辑的文件
:Sex水平分割一个窗口,浏览文件系统
:Vex垂直分割一个窗口,浏览文件系统

小窗口的关闭

命令含义
ZZ(常用)保存并退出
:q如果是最后一个窗口,将退出vim
:close关闭窗口,最后一个窗口不能用此命令,防止意外退出vim
:only只保留当前窗口,关闭其它窗口
:wall对所有修改过的窗口进行保存
:qall关闭所有窗口并退出

替换

命令含义
:s/old/new用new替换当前行第一个old。
:s/old/new/g用new替换当前行所有的old
:n1,n2s/old/new/g用new替换文件n1行到n2行所有的old。
:%s/old/new/g用new替换文件中所有的old。
:%s/^/xxx/g在每一行的行首插入xxx,^表示行首。
:%s/$/xxx/g在每一行的行尾插入xxx,$表示行尾。
%s/old/new/gc所有替换命令末尾加上c, 每个替换都将需要用户确认。 加上i则忽略大小写(ignore)。

分屏编辑

  • vim -o file1 file2:水平分割窗口,同时打开file1和file2
  • vim -O file1 file2:垂直分割窗口,同时打开file1和file2
赞(2) 打赏
未经允许不得转载:刘鹏博客 » Vim常用命令汇总
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏