最近一个月一直在使用跳板机,之前对vim下的按键不是很熟,这一个月用的多了,也都熟练了,今天整理下vim下常用的按键操作,基本可以满足工作需要,更重要的还是经常使用vim,不要刻意的去背去记,用的多了自然而然就会了。
一般模式下常用按键
移动光标
h/← 光标向左移动一个字符
j/↓ 光标向下移动一个字符
k/↑ 光标向上移动一个字符
l/→ 光标向右移动一个字符
向上移动xx行,可以使用xx↑或xxk,即想要移动的数字+按键操作就可以
fn+↑/↓ 向上或者向下移动一页
0/home 移动到这一行的最前面字符处
$/end 移动到这一行的最后面字符处
H 光标移到这一页最上面那一行的第一个字符
M 光标移到这一页最中间那一行的第一个字符
L 光标移到这一页最底下那一行的第一个字符
G 光标移到这个文件的最后一行
nG 光标移到这个文件的第n行
gg 光标移到到这个文件的第一行 (相当于1G)
n[Enter] 光标向下移动n行
查找与替换
/word 在文件中向下查找名为word的字符串
?word 在文件中向上查找名为word的字符串
n 重复前一个查找操作,与/word配合,向下继续查找下一个名为word的字符串
N 反向进行前一个查找操作,与/word配合,向上继续查询下一个名为word的字符串
:n1,n2s/word1/word2/g n1与n2为数字,在第n1和n2行之间查找word1这个字符串,并将该字符串替换为word2
:1,$s/word1/word2/g 从第一行到最后一行查找word1字符串,并将该字符串替换为word2
:1,$s/word1/word2/gc 从第一行到最后一行查找word1字符串,并将该字符串替换为word2,且在替换前显示提示字符给用户确认是否需要替换
删除、复制与粘贴
删除
x 向后删除一个字符,相当于Del
X 向前删除一个字符,相当于backspace
nx n为数字,连续向后删除n个字符
dd 删除光标所在的那一整行
ndd 删除光标所在的向下n行
d1G 删除光标所在行到第一行的所有数据
dG 删除光标所在行到最后一行的所有数据
d$ 删除从光标所在的那个字符到该行的最后一个字符
d0 删除从光标所在的那个字符到该行的最前面一个字符
复制
yy 复制光标所在的那一整行
nyy 复制光标所在的向下n行
复制成功下面这样显示
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到最后一行的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
粘贴
p p为将已复制的数据在光标的下一行粘贴
P P为将已复制的数据在光标的上一行粘贴
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,向下删除10行[10cj]
u 复原前一个操作,也就是撤销之前的操作 相当于windows的ctrl+z
Ctrl+r 重做上一个操作 相当于windows的ctrl+y
. 小数点,重复前一个操作
一般模式切换到编辑模式
进入插入或替换的编辑模式
插入模式
i 进入插入模式,i为从目前光标所在处插入
I I为目前所在行的第一个非空格符处开始插入
a a为从目前光标所在的下一个字符处开始插入
A A为从光标所在行的最后一个字符处开始插入
o o为从目前光标所在的下一行插入新的一行
O O为从目前光标所在处的上一行插入新的一行
替换模式
r 只会替换光标所在的那一个字符一次
R 一直替换光标所在的文字,直到按下ESC
ESC 退出编辑模式,回到一般模式中
一般模式切换到命令行模式
命令行的保存、离开等命令
:w 将编辑的数据写入硬盘文件中
:w! 强制写入该文件
:q 离开vi
:q! 若曾修改过文件,又不想保存,!为强制离开又不保存文件
:wq 保存后离开
:wq! 强制保存后离开
ZZ 若文件没有改动,则不保存离开,若文件已经被改动过,则保存后离开
:w[filename] 将编辑的数据保存成另一个文件(类似另存)
:r[filename] 在编辑的数据中,读入另一个文件的数据,将filename的文件内容加到光标所在行后面
:n1,n2w[filename] 将n1到n2的内容保存成filename这个文件
:!command 暂时离开vi到命令行模式下执行command的显示结果 eg::! ls/home 即可在vi中查看/home下面以ls输出的文件信息
:set nu/:set number 显示行号
:set nonu 取消行号
参考《鸟哥的Linux私房菜》