Linux 之简明 VIM 练级攻略
参考
基础命令
i
:INSERT
模式,按ESC
回到Normal
模式。x
:删除当前光标所在的一个字符。:wq
:存盘 + 退出(:w
存盘,:q
退出)。注::w
后可以跟文件名。dd
:删除当前行,并把删除的行存到剪贴板里。p
:粘贴剪贴板hjkl
:强例推荐使用其移动光标,但不必需,你也可以使用光标键(←
↓
↑
→
)。注:j
就像下箭头。:help <command>
:显示相关命令的帮助。
各种插入模式
a
:在光标后插入。o
:在当前行后插入一个新行。O
:在当前行前插入一个新行。cw
:替换(剪切)从光标所在位置后到一个单词结尾的字符。
简单的移动光标
0
:数字零,到行头。^
:到本行第一个不是blank
字符的位置(所谓blank
字符就是空格,tab,换行,回车
等)。$
:到本行行尾。g_
:到本行最后一个不是blank
字符的位置。/pattern
:搜索pattern
的字符串(如果搜索出多个匹配,可按n
键到下一个)。
拷贝/粘贴
P
:粘贴,p
是表示在当前位置之后,P
表示在当前位置之前。yy
:拷贝当前行当行于ddP
。
Undo/Redo
u
:即:undo
,撤销刚执行的命令(Already at oldest change)。<C-r>
:即:redo
,重新执行刚撤销的命令(Already at newest change)。
打开/保存/退出/改变文件(Buffer)
:w
:存盘。:q!
:退出不保存。:qa!
强行退出所有的正在编辑的文件,就算别的文件有更改。:x
,ZZ
或:wq
:保存并退出。(:x
表示仅在需要时保存,ZZ
不需要输入冒号并回车)。:e <path/to/file>
:打开一个文件。:saveas <path/to/file>
:另存为<path/to/file>
。
切换文件
:bn
和:bp
:你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(陈皓注: 我喜欢使用:n
到下一个文件)。
光标移动
gg
:到第一行(相当于1G
,或:1
)。G
:到最后一行。NG
:到第N
行(注意命令中的G
是大写的,另我一般使用:N
到第N
行,如:137
到第137
行)。0
:到行头。^
:到本行的第一个非blank
字符。$
:到行尾。g_
:到本行最后一个不是blank
字符的位置。w
:到下一个单词的开头。e
:到下一个单词的结尾。%
:匹配括号移动,包括(
,{
,[
。(陈皓注: 你需要把光标先移到括号上)。*
和#
:匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*
是下一个,#
是上一个)。
重复自己的
N:重复某个命令 N 次
2dd
:删除 2 行。3p
:粘贴文本 3 次。5iHello World!
[ESC]
:会写下 "Hello World! Hello World! Hello World! Hello World! Hello World! "。
.
:(小数点)可以重复上一次的命令
大小写
gU
:变大写。gu
:变小写。
强效的命令
d
:删除。v
:可视化的选择。J
:把所有的行连接起来(变成一行)。<
或>
:左右缩进。=
:自动给缩进。
组合命令
dt"
:删除所有的内容,直到遇到双引号"
。0y$
命令意味着:0
:先到行头。y
:从这里开始拷贝。$
:拷贝到本行最后一个字符。