vi、vim,文本编辑器
三种模式:命令模式、输入模式、末行模式(当然名称可能有所

不同,这种说法可能更直观)
vim  [参数]  文件名           进入命令模式

模式间转换(从命令模式)
i键  Insert,进入输入模式(退出则Esc键到命令模式)

:    /     ?    进入末行模式(退出则Esc键到命令模式)

末行模式下
:X   设置密码      取消密码则都设为空(同Windows的BIOS)
:w   存储
:w 文件名   以指定的名称存储(也可理解为另存为)
:w! 强制存储
:q   退出
:q! 强制退出
:wq  保存并退出  (:qw在PATH中未定义)
:wq!强制保存并退出
:!ls /root  查看/root目录下内容(再回车,返回vim)
:!date      查看文件日期
:e 文件名    打开新文件,关闭旧文件
:set nu      新增行号(实时,退出vim则取消)
:set nonu    取消行号
:number      跳转到第number行

命令模式下
光标移动  h(左)、j(下)、k(上)、l(右)
shift+g  最后一行
gg       第一行

^(shift+6) 跳转到行首
$(shift+4) 跳转到行尾

翻页
ctrl+f   前翻一页
ctrl+b   后翻一页
ctrl+u   前翻半页
ctrl+d   后翻半页

删除
x   删除单字符
dd  删除整行
dw  删除单词
d$  删除至行尾
d^  删除至行首
J   合并上下行

撤销
u       逐步撤销
U       还原当前行
ctrl+r  对已撤销内容还原

复制、粘帖
yy         复制当前行
p          读取vi缓冲区中的内容(即粘贴)
number yy  当前行到以下number行复制

字符串查找
/name     向下查找name
?name    向上查找name
n键  下一个
N键  上一个

替换
:[替换范围] sub/旧的内容/新的内容[/g]
%  在整个文件内容中查找并替换
n,m  在指定的行数范围内查找并替换
/g    替换行中所有
无    替换行中首个

shift+z+z  保存并退出

:s/654/321              该行第一个
:s/654/321/g            该行全部
:1,10s/n/987           1到10行每行第一个
:1,10s/n/654/g          1到10行全部替换
:%s/654/123             第一列
:%s/654/963/g           所有列所有654