一、vim命令
每个模式下记下常用的命令即可。
命令
|
等效命令
|
命令效果
|
正常模式
|
||
>G
|
之后的每行右移
|
|
C
|
c$
|
删除光标到结尾的数据,并插入
|
s
|
cl
|
删除当前字符,并插入。相当于xi
|
S
|
^C
|
删除当前行,并插入。
|
I
|
^i
|
从行头部插入
|
f{char}
|
让Vim查找下一处指定字符出现的位置
|
|
;
|
重复上一次查找
|
|
,
|
;按了太多之后,跳回去,😂
|
|
*
|
查找当前光标下的单词。
*nn 会匹配所有的匹配项,从而跳回到本次查找的起点。
|
|
".范式"
|
用一次按键移动,另一键执行,这就是理想的编辑模式,称为".范式“。
|
|
daw
|
delete a word删除一个单词
|
|
W
|
跳到下一个{0-9a-zA-Z}字符上
|
|
dap
|
删除整段
|
|
gUap |
把整段文字转为大写
|
|
<C-a>,<C-x>
|
数字自增和自减 | |
t{char}
|
正向移动到下一个{char}所在之处的前一个字符上
|
|
插入模式
|
||
![]() |
在插入模式中更正错误。
这些命令不是插入模式独有,在Vim的
命令模式以及bash shell中也可以使用它们
<C-v>和<C-k>在命令模式下同样可以使用。
|
|
zz
|
重绘屏幕,将当前行显示在窗口正中 | |
<C-r>{register}
|
将寄存器中的文本粘贴到光标所在的位置,
命令模式下可以使用
|
|
<C-r>=
|
计算数字表达式,例如3*5
|
|
可视模式
Vim有3种可视模式,分别用于操作字符文本,行文本和块文本。可视模式下,i和a被视为文本对象,因此按i和a不能起到增加的作用。
|
||
![]() |
||
o
|
重新调整选取的边界
|
|
命令模式
Ex命令操作范围更大,并且能够在一次执行中修改多行。
![]() |
||
:copy
简写形式为:t
![]() |
1、把一行或者多行从文档的一部分复制到另一部分。
格式为
:[range]copy {address}
2、yyp会使用寄存器,而:t.不会,当不想覆盖默认寄存器中的内容时,使用:t.来复制行。
|
|
:move
简写形式为:m
|
把一行或者多行移动到文档的其他地方,相当于剪切。
格式为
:[range]move {address}
|
|
@:
|
重复上一次的Ex命令。
|
|
:normal
|
在指定范围上执行普通模式命令
➾:%normal A;
➾:%normal i//
|
|
<C-d>
<C-n>
<Tab>
|
命令模式下,Ex命令的补全
|
|
<C-r><C-w>
<C-r><C-a>
|
插入光标下的单词
插入光标下的字串
|
|
<C-p>
<C-n>
|
显示上一次/下一次输入的Ex命令
|
|
vim和外部命令
![]() |
||
文件
|
||
:bnext
:bprev
:bfirst
:bnext
|
遍历缓冲区
|
|
:edit
|
打开文件,但是需要完整的路径
|
|
:find
|
打开文件,但是无需输入该文件的完整路径。想要使用此功能,我们首先需要配置‘Path’选项。
使用find的原因是因为,如果工程中包含多层嵌套的目录,使用edit的话,每次需要输入完整的路径
|
|
![]() ![]() ![]() |
||
更快地移动以及跳转
|
||
技巧47
|
区分屏幕行和实际行
gj,gk,g0,g^,g$
|
|
技巧48基于单词移动
|
w,b,e,ge,W,B,E,GE
其中w,b使用的最多
|
|
技巧49对字符进行查找
|
f{char} 和 t{char}
F{char} 和 T{char}
|
|
技巧50通过查找进行移动
|
d/ge<CR>
|
|