vim(参考资料)的三种模式:命令模式(Command mode),输入模式(Insert mode),底线命令模式(Last line mode)。html
启动 vim,便进入了命令模式,此状态下敲击键盘动做会被 vim 识别为命令。linux
经常使用命令:vim
i 切换到输入模式
x 删除光标所在处的字符
u 撤销命令
: 切换到底线命令模式,以在最底一行输入命令
复制代码
在命令模式下按下 i 就进入了输入模式,这个时候,键盘上除了 Esc 这个按键以外,其余的按键均可以视做为通常的输入按钮。bash
在命令模式下按下:(英文冒号)就进入了底线命令模式,按 ESC 键可随时退出底线命令模式。spa
基本命令(已经省略了冒号):code
q 退出程序
w 保存文件
复制代码
移动光标的方法 | |
---|---|
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
"nj" 或 "n↓" | n 表示『数字』,例如 30, 则向下移动 30 行 |
[Ctrl] + [f] | 屏幕『向下』移动一页 |
[Ctrl] + [b] | 屏幕『向上』移动一页 |
[Ctrl] + [d] | 屏幕『向下』移动半页 |
[Ctrl] + [u] | 屏幕『向上』移动半页 |
n | n 表示『数字』,如 6 光标会向右移动 6 个字符距离 |
0 | 移动到这一行的最前面字符处 (经常使用) |
$ | 移动到这一行的最后面字符处(经常使用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个档案的最后一行(经常使用) |
nG | n 为数字,移动到这个档案的第 n 行(可配合 :set nu) |
gg | 移动到这个档案的第一行 (经常使用) |
n | n 为数字。光标向下移动 n 行(经常使用) |
搜索替换 | |
---|---|
/word | 向光标之下寻找一个名称为 word 的字符串(经常使用) |
?word | 向光标之上寻找一个名称为 word 的字符串(经常使用) |
n | 重复前一个搜寻的动做 |
:1,$s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(经常使用) |
:1,$s/word1/word2/gc | 在取代前显示提示字符给用户确认 (confirm) 是否须要取代!(经常使用) |
删除、复制与贴上 | |
---|---|
x, X | x 为向后删除一个字符, X 为向前删除一个字符 |
nx | n 为数字,连续向后删除 n 个字符 |
dd | 删除游标所在的那一整行(经常使用) |
ndd | n 为数字,删除光标所在的向下 n 行(经常使用) |
d1G | 删除光标所在到第一行的全部数据 |
dG | 删除光标所在到最后一行的全部数据 |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 删除游标所在处,到该行的最前面一个字符 |
yy | 复制游标所在的那一行(经常使用) |
nyy | n 为数字,复制光标所在的向下 n 行(经常使用) |
y1G | 复制游标所在行到第一行的全部数据 |
yG | 复制游标所在行到最后一行的全部数据 |
y0 | 复制光标所在的那个字符到该行行首的全部数据 |
y$ | 复制光标所在的那个字符到该行行尾的全部数据 |
p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行 |
J | 将光标所在行与下一行的数据结合成同一行 |
u | 复原前一个动做,即回撤(经常使用) |
. | 重复前一个动做(经常使用) |
进入输入或取代的编辑模式 | |
---|---|
i I | i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』 (经常使用) |
a A | a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』(经常使用) |
a A | o 为『在目前光标所在的下一行处输入新的一行』; O 为在目前光标所在处的上一行输入新的一行(经常使用) |
[Esc] | 退出编辑模式,回到通常模式中(经常使用) |
指令行的储存、离开等指令 | |
---|---|
:w | 将编辑的数据写入硬盘档案中(经常使用) |
:w! | 若文件属性为『只读』时,强制写入该档案 |
:q | 离开 vi (经常使用) |
:q! | 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案 |
:wq | 储存后离开,若为 :wq! 则为强制储存后离开 (经常使用) |
ZZ | 若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开 |
:w [filename] | 将编辑的数据储存成另外一个档案(相似另存新档) |
vim 环境的变动 | |
---|---|
:set nu | 显示行号 |
:set nonu | 与 set nu 相反,为取消行号 |