前言

Vim编辑器是Vi编辑器的升级版,Vi支持的所有语法都可在Vim中使用

基本使用

I:编辑模式,通过方向键控制光标移动
ECS:直接按ESC,退出编辑模式进入normal模式
:e:重新加载当前文档
:e!:重新加载当前文档,并丢弃已做的改动
:w:保存修改。
:wq:保存退出,即使文件没有被修改也强制写入,并更新文件的修改时间
ZZ:保存退出。
:x:类似于:wq,保存退出,仅当文件被修改时才写入
:q:如果未进行任何更改,不保存退出
:q!: 退出并销毁所做的任何更改

移动

以下移动都是在normal模式下,编辑模式通过上下左右按键控制移动。

0:移动到行首。
g0:移到光标所在屏幕行行首。
gg:到文件头部。
G:到文件尾部。
h或者退格: 左移一个字符;
l或者空格: 右移一个字符;
j: 下移一行;
k: 上移一行;
gj: 移动到一段内的下一行;
gk: 移动到一段内的上一行;
+或者Enter: 把光标移至下一行第一个非空白字符。
-: 把光标移至上一行第一个非空白字符。
w: 前移一个单词,光标停在下一个单词开头;
W: 移动下一个单词开头,但忽略一些标点;
e: 前移一个单词,光标停在下一个单词末尾;
E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点;
b: 后移一个单词,光标停在上一个单词开头;
B: 移动到上一个单词开头,忽略一些标点;
ge: 后移一个单词,光标停在上一个单词末尾;
gE: 同 ge ,不过‘单词’包含单词相邻的标点。
^: 移动到本行第一个非空白字符。
$: 移动到行尾。
g$: 移动光标所在屏幕行行尾。
n|: 移到递n列上。
nG: 到文件第n行。
H: 移到屏幕最顶端一行。
M: 移到屏幕中间一行。
L: 移到屏幕最底端一行。

复制与粘贴

p: 在光标之后粘贴。
P: 在光标之前粘贴。
d: 删除(剪切)在可视模式下选中的文本。
d$或者D: 删除(剪切)当前位置到行尾的内容。
d0: 删除(剪切)当前位置到行首的内容
d1G或者dgg: 剪切光标以上的所有行。
dG: 剪切光标以下的所有行。
y: 复制在可视模式下选中的文本。
yy或者Y: 复制整行文本。
y$: 从光标当前位置复制到行尾。
y0: 从光标当前位置复制到行首。
y1Gygg: 复制光标以上的所有行。
yG: 复制光标以下的所有行。

回退

[7] u:取消7个改动。
:undo 7:撤销7个改变。
:undolist:查看撤销历史。
:earlier 7m:回到7分钟前
:later 7s:前进7秒
ctrl + r:重做最后的改动。
U:取消当前行中所有的改动。