本文只介绍vi常用的一些命令操作,旨在让初次使用vi/vim的程序员快速上手,先使用起来再说。
vi操作模式
正常模式(Normal Mode):
按Esc进入, 左下角显示文件名或为空,vi中命令都是以冒号开关,如打开一文件后在正常模式下,输入 :wq 即可保存修改的文件内容并退出
输入模式(Insert Mode):
可用键盘正常写入文件内容,按i键等进入, 左下角显 示–INSERT–
可视模式(Visual Mode):
按ctral+V可进入选中块的可视模式,输入修改命令可应用此块,左下角显示–VISUAL–
vi常用命令图解
这张图非我原创,是从网上扒来看,总结的很不错。
粘贴多行;Shift+Inser
dd 删除一行
ndd 删除以当前行开始的n行
dw 删除以当前字符开始的一个单词
ndw 删除以当前字符开始的n个单词
d) 删除到下一句的开始
d} 删除到下一段的开始
删除多行:开始处ma, 结束处d’a
复制 :9, 15 copy(co) 16 //将第9行至第15行的数据,复制到第16行
移动 :9, 15 move(m) 16 //将第9行到第15行的文本内容到第16行的后面
vim下运行linux命令 :!gcc main.c
格式化、缩进全文 shift+V后进入可视化编辑模式,输入gg=G
vi中“gg”可以跳到第一行,“G”可以跳到最后一行,而“=”则是 调用命令行的indent程序来使文本智能的缩进。如果你的linux上没有装indent,而盲目的使用gg=G,很可能会损坏你正在编辑的文件,gg=G之后就从第一行缩进至最后一行了。
例如:从80行缩进直到100行,你可以用 80G=100G
ggVG 全选
u 撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作
:14 跳转到14行
/abc #查找abc
/ abc #查找abc单词(注意前后的空格)
:set nu 显示行号
翻页命令:
ctrl+ f 上翻一页(forward)
ctrl + b 下翻一页(backward)
ctrl + u 上翻半页(up)
ctrl + d 下翻半页(down)