vi或vim是linux上非常实用的编辑器,很多linux默认安装了vi或vim。vi是 visual interface(可视界面)的缩写,vim是 vi IMproved(增强版的vi)的缩写,vim可以高亮显示文本
vi分为命令模式,底线命令模式和输入模式。使用vi进入命令行模式,在命令行输入a,i,o等插入命令进入输入模式,按下ESC退出输入模式回到命令行模式。在命令行模式输入冒号进入底线命令模式,命令结束回到命令模式
打开、保存、关闭文件
vi filename,打开filename文件 :w,保存文件 :w filename,另存为filename :q,退出 :q!,强制退出 :wq,保存并退出 ZZ,那是大写的ZZ,表示文件如果没有改动则离开,如果改动则保存并离开
移动光标
命令模式下可以实用以下按键,也可以使用上、下、左、右箭头 空格,向右 baskspace,向左 回车,跳转到下一行行首 -,跳转到上一行行首 0,零相当于home建,跳转到行首 $,相当于end建,跳转到行尾 ctrl + f,向下翻一页 ctrl + d,向下翻动半页 ctrl + b,向上翻动一页 ctrl + u,向上翻动半页
插入文本或行
i,在光标的左边插入文本
I,在光标的行首插入文本
a,在光标的右边插入文本
A,在光标的行尾插入文本
o,在光标的下面新建一行
O,在光标的上面新建一行
R,将当前字符替换
J,合并当前行和下一行
删除或恢复
x,删除当前光标所在的字符
nx,删除光标所在字符开始的n个字符
dd,删除当前行
ndd,删除当前行开始的n行
d1G,删除光标行到文件开始
dG,删除光标行到文件结束
u,撤销
U,取消撤销
搜索
/str,向下搜索str字符串 ?str,向上搜索str字符串 &str,只显示匹配到str的行 n,在搜索时匹配下一个 N,在搜索时匹配上一个 esc+n,重复上一次搜索内容,向下匹配 esc+N,重复上一次搜索内容,向上匹配
跳转至某行
100+,向下跳转100行 100-,向上跳转100行 100G,跳转到100行的位置。 G,跳转到末尾 gg,跳转到文件开始,相当于1G
设置行号
:set nu,显示行号 :set nonu,取消显示行号
复制、粘贴
[n]yy,复制当前行。n为数字,如果加了数字表示复制n行 y1G,复制当前行到文件开始 yG,复制当前行到文件结束 [n]yw,从光标开始复制到单词结尾。n为数字,如果加了数字则表示从光标开始复制n个单词,注意是单词,不是字符 y$,从光标开始复制到行尾 y^,从光标开始复制到行首 p,在光标后粘贴 P,在光标前粘贴
替换
:s/old/new,在当前行中把第一个old替换成new :s/old/new/g,在当前行中把所有的old替换成new :start,end s/old/new/g,从strart到end行中,所有的old换成new :%s/old/new/g[c],将整个文件中的old替换成new,如果出现c则会让用户确认,等同于 :1,$s/old/new
其他
.,那是小数点,重复上一个动作 :e otherfilename,编辑另一个文件 :! commond,暂时退出vi并执行另一个命令,如:!ls /home :set fileformat=unix,将文件类型修改为unix下(windows下的文本在linux下会出现^M)
-- 赫连小伍原创,转载请注明出处,微信公众号同名