Vim常用命令汇总

1 普通模式

命令操作符合命令作用等同命令
.重复上次修改
x删除光标下的字符
dd删除整行
>G从当前行到文档末尾处的缩进层级
a在当前光标之后添加内容
i在当前光标之前添加内容
A在当前行的结尾添加内容$a
I在当前行的开头添加内容^i
C从当前光标到行尾内容全部删除c$
cw从光标到当前一个单词内容进行删除
cW从光标到当前一个字符串删除一个单词
s删除光标所在字符,并且进入插入模式cl
S删除整行内容dd
I从行首进入插入模式^i
o从下行进入插入模式
O从上行进入插入模式ko
f{char}查找当前行char(任一字符)所在位置
;正向查找上次f命令所查找的字符
,方向查找上次f命令所查找的字符
n正向跳转到匹配指定模式的地方
n反向跳转到匹配指定模式的地方
u插销上一次的修改
db从光标起始位置到单词开头的内容,光标所在的字符会保留
b将光标移到单词的开头
dw删除光标所在位置到该单词的结尾
daw删除光标所在的整个单词
d$删除光标到行尾所有内容
d{n}w删除光标所后的n个词
g~从光标行到下一行内容反转大小写
gu从光标行到下一行内容转小写
gU从光标行到下一行内容转大写
gU{motion}gU为操作符,{motion}为动作符
>从光标行到下行内容增加缩进
>{n}从光标行到下n行内容增加缩进
yt{char}从光标内容到字符char内容copy到寄存器
v激活面向字符的可视模式
V激活面向行的可视模式
ctr+v激活面向列块的可视模式
*高亮光标所在的所有单词,且光标跳转到下一处匹配
q/打开查找命令历史的命令行窗口
q:打开Ex命令历史的命令窗口

2 插入模式

命令操作符命令作用等同命令
ctr+h删除光标前一个字符等同退格键
ctr+w删除光标前一个单词
ctr+u删除光标到行首内容
Esc切换到普通模式
ctr+[切换到普通模式
ctr+o切换到插入-普通模式(是普通模式的一个特例,执行一次普通模式命令,执行完后,回到插入模式
ctr+r{register}把寄存器{register},eg: register=0的内容黏贴到光标所在位置

3 可视模式

vim的可视模式运行选中一块文本区域并在其上进行操作,某些可视模式命令执行的基本功能与普通模式相同,但操作上有些细微的变化。在普通模式中,先触发修改命令,然后使用动作命令指定其作用范围,然而,在可视模式中,要先选中选区,然后再触发修改命令。

命令操作符命令作用等同命令
Esc回到普通模式
ctr+[回到普通模式
v从面向字符的可视模式切换到普通模式
V从面向行的可视模式切换到普通模式
ctr+v从面向列块的可视模式切换到普通模式
b选中区域向后移动一个词
e选中区域向前移动一个词
o重现调整可视模式选择的边界
it高亮选中标签内部的内容
U对选中的区域转大写
u对选中的区域转小写
{n}j向下移动n行
x对选中的内容进行删除
gv重选上次的高亮选区
r{char}对选中的区域用{char}取代

假设我们需要对如下内容中的"images"更改为"compnents":

在这里插入图片描述

我们可以在可视化模式下进行操作,只需要如下几步,就能够快速达到效果:

  • 进入可视化列块模式:ctr+v
  • 移动选定方块区域:jje
  • 对选定的区域进行删除:c
  • 输入替换的内容:components
  • 进入普通模式:Esc (此时后两行的内容也会全部更换过来)

操作完后结果如下:
在这里插入图片描述

4 命令行模式

Vim的先祖是vi,vi奉一个名为ex的行编辑器为先祖,这就是为什么有Ex命令。在按下 : 键时,Vim会进入到命令行模式,这个模式和shell下的命令行有些类似,可以输入一条命令,然后按Enter键执行它。在任意时刻,都可以按键从命令行模式切回普通模式。Ex命令影响范围广且距离远。

命令操作符命令作用等同命令
:{n}把光标移到第n行,比如 :10
:2print将第二行的内容打印出来:2p
:1,2substitue/#/t/将第一到第二行内容的第一个#替换成t:1,2s/#/t/
:%s/#/t/g将文本所有行的每个#替换成t
:2,5p将第2行到第5行内容全部打印出来
:2,5delete将第2行到第5行内容全部删除
:{start},{end}{action}从地址start到地址end做操作action
:.,$p从当前位置到文件末尾全部内容打印
:%p%代表当前文件中的所有行,打印当前文件的所有内容:1,$p
:‘<,’>p‘<代表高亮选取的起始行,’>高亮选取的结束行,对高亮选取的内容进行打印输出
:‘<,’>t0'对高亮选取的内容复制到文件开头
:{range}t{address}t是copy的简写,将range范围内容copy到地址address部分
:{range}m{address}m是move的简写,将range范围内容move到地址address部分
:6t.将第6行复制到当前行下方
:t6将当前行复制到第6行下方
:t.将当前行内容copy到当前行下方
:‘<,’>m$将高亮选区的内容移动到文件末尾
:‘<,’>normal .将高亮选区的内容执行普通模式下的.命令
:‘<,’>normal i//将高亮选区的内容执行普通模式下i//命令(对高亮每行行首进行加注释//
:%normal A;对整个文件范围,执行普通模式的A;命令(对每行末尾添加;)
:%normal i//对整个文件范围,执行普通模式的i//命令(对每行行首添加注释//)
:4,10normal i//对第4行内容到第10行内容,执行普通模式的i//命令(对每行行首添加注释//)
@:重复上次Ex命令
:col<ctr+d>ctr+d命令会让vim现实可用的补全列表,类似shell按tab键进行补全,最后这里的结果为: colder colorsheme
:colorscheme <ctr+d>对colorscheme的配色方案补全,出来的结果有:blue blackboard desert shine 等
:%s//<ctr+r><ctr+w>/g对文本中所有的用*命令高亮产生的单词用执行cw后修改的词取代
:!ls在vim的命令行模式中,给命令加一个感叹号前缀,比如!ls就可以调用外部shell的ls命令,查看当前目录的内容
:!cat %在vim的命令行模式中,%表示当前文件名,所以这个命令表示输出当前文件的所有内容
:shell该命令来启动一个交互的shell会话,在这个会话中,我们可以执行多个shell命令,想退出并返回vim,则用exit命令就可以如果我们在bash中运行的vim,则我们可以用命令ctr+z挂起vim所属的进程,控制权交给bash, 可以用jobs查看挂起的作业,在bash执行完后,我们可以用fg命令唤醒被挂起的作业,恢复vim,ctr+z与fg比:shell exit更加方便快捷
:source batch.vim批量执行batch.vim中的所有Ex命令,若想撤回,则按u键即可让文档完好如初
:pwd打印工作目录
:edit {file_path}打开指定path的file文件
:edit .打开文件管理器,并显示当前工作目录:e.
:Explore打开文件管理器,并显示活动缓冲区所在的目录:E

4 文件操作

Vim允许在多个文件上工作,允许同时在多个缓冲区上工作。例如我们在shell里用下面的命令打开几个文件:
vim *.txt
此时目录正好有a.txt和b.txt,当vim启动时,它会显示一个窗口。

命令操作符命令作用补充说明
:bnext正向移动一个文件等同ctr+^
:bprev反向移动一个文件
:bfirst跳到缓冲区列表的开头
:blast跳到缓冲区列表的结尾
:args显示启动时作为参数传给vim的文件列表
:args app.js将参数列表增加app.js文件,vim跳转打开app.js文件
:w把缓冲区保存到文件:write
:edit!重新从磁盘读取此文件,这会用文件的内容覆盖缓冲区中的内容,当缓冲区内容与磁盘一致后,就可以执行:quit
<ctr+w>s水平切分当前窗口,新窗口仍然显示当前缓冲区
<ctr_w>v准直切分当前窗口,新窗口仍然显示当前缓冲区
:split {file}水平切分当前窗口,并在新窗口中载入{file}
:vsplit {file}准直切分当前窗口,并在新窗口中载入{file}
<ctr+w>w在窗口间循环切换
<ctr+w>h切换到左边的窗口
<ctr+w>j切换到下边的窗口
<ctr+w>k切换到上边的窗口
<ctr+w>l切换到右的窗口
<ctr+w>c关闭活动窗口:close
<ctr+w>o只保留活动窗口,关闭其他所有窗口:only
<ctr+w>=使所有窗口等宽,等高
<ctr+w>_最大化活动窗口的高度
<ctr+w>|最大化活动窗口的宽度

5 动作命令

命令操作符命令作用补充说明
h左移一列
l右移一列
j下移一行
k上移一行
gj屏幕行向下移一行
gk屏幕行向上移一行
0移动到实际行的行首
^移动到实际行的第一个非空白字符
g^移动到屏幕行的第一个非空白字符
$移动到实际行的行尾
g$移动到屏幕行的行尾
g0移动到屏幕行的行首
w正向移动到下一单词的开头
b反向移动到当前单词/上一单词的开头
e正向移动到当前单词/下一单词的结尾
ge反向移动到上一单词的结尾
W移动一个字串(按照空白字符分割,不要搞混w基于单词移动例如:: e.g. we’re going too slow 有5个字串和10个单词
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值