写在前面:又到周末,好久没更新公众号了,对各位小伙伴们说声抱歉。年底了,各种事情,都不是那么让人开心,所以让我有点无力(无望?),下班回家后什么都不想干,看着客厅发呆,一声叹息~~~~~~~快递到了一周多还没打开,今天打算开封试下新话筒的效果,希望能让我“振作”起来。
分享30个常用的Vim命令,希望其中能有一二能让你觉得有用。
删除从光标位置到单词结尾之间的字符并进入插入模式:
cw
。删除光标所在单词并进入插入模式:
ciw
,删除光标所在位置的单词及空格:daw
。高亮选中标签内部的内容:
vit
。正向移动到下一单词的开头:
w
,反向移动到当前单词/上一单词的开头:b
。移动到当前行的第n列:
n|
。重绘屏幕并把当前行显示在窗口正中:
zz
。将光标所在行移到窗口的顶端:
zt
,将光标所在行移到窗口的底部:zb
。Vim跳转位置前进:
<Ctrl-i>
,跳转位置后退:<Ctrl-0>
,类似浏览器的前进后退功能。回到上次跳转的位置:
''
,回到上次编辑的位置:'.
。重复执行上次的Vim命令行模式命令:
@:
。查看Vim当前打开文件的文件名、位置信息和状态等:
<Ctrl-g>
(同时按下Ctrl键和g键)。Vim命令行模式下,
%
表示当前活动缓冲区对应文件的完整文件路径。不离开插入模式,粘贴寄存器中的文本:
<C-r>{register}
({register}是我们想要插入的寄存器的名字)。重选上一次由可视模式所选择的文本范围:
gv
。在Vim可视化模式下高亮选中区域后按下
:
键,命令行上会预先填充一个范围:'<,'>
代表高亮选区的范围。把任意寄存器的内容插入到命令行:
:<Ctrl-r>{register}
。插入模式下同时按下
<Ctrl-r>
,再输入=后,输入任意算数式(如333*2),回车,即可看到运算结果 (这是使用了Vim表达式寄存器"=
)。只读寄存器
"%
表示Vim当前活动文件缓冲区的文件名,在Vim插入模式下,按<Ctrl-r>%
可将当前文件名输入到文件中。把光标所在当前单词插入Vim命令行:
<Ctrl-r><Ctrl-w>
。光标所在行用
.
表示,文件的最后一行用$
表示,%
整个文件 (:1,$
的简写形式)。删除当前光标到本行行尾的所有内容:
d$
,删除当前光标到本行行首的所有内容:d0
。删除所有行:
dG
或:%d
。调换Vim当前光标之后的两个字符的顺序:
xp
。当前行自动缩进对齐 (又称自动格式化):
==
,当前文件所有行自动缩进对齐:gg=G
。正向移动到下一个 {char} 所在之处的字符上:
f{char}
,正向移动到下一个 {char} 所在之处的前一个字符上:t{char}
。Vim普通模式下
;
命令会重复查找上次f
命令所查找的字符。Vim分屏后增加某个屏幕的高度:
<Ctrl-w>+
(先同时按下Ctrl键和w键,再按下+键)。把多个标签页中的所有文件中的单词 food 都替换成 drink,可以使用
tabdo
命令::tabdo %s/food/drink/g
。临时退出插入模式,执行单条命令又返回插入模式:
<Ctrl-o>
。修改当前光标所在字符为a:
ra
。将单词转成大写:
gUiw
,将当前单词转成小写:guiw
。另存为文件:
:saveas <filename>
。读取文件并将内容插入到光标后:
:r <filename>
。回退到15分钟前的文件内容:
:earlier 15m
。