非常实用的vi命令,基本都是常用的

文本编辑

i        # 在光标前插入
I        # 在当前行首插入
a        # 在光标后插入
A        # 在当前行尾插入
o        # 在当前行之下新开一行
O        # 在当前行之上新开一行
r        # 替换当前字符(replace,按下r之后,光标不动,输入一个字符直接替换)
R        # 替换当前字符及其后的字符,直至按ESC键(按下R后,输入的字符会依次替换后续字符)

查找、替换

/pattern        # pattern(样式)指代的是要查找的内容,将向后查找与指定内容匹配的第一样式
/               # 重复上一次查找,在文件中查找下一个匹配样式
?pattern        # pattern(样式)指代的是要查找的内容,将向前查找与指定内容匹配的第一样式
?               # 重复上一次查找,在文件中查找与上一次查找内容匹配的样式
%               # 把当前光标移至匹配的圆括号或方括号(对程序员来说,该命令非常有用)
:s/pattern1/pattern2    # 用pattern2替换当前行中与pattern1匹配的每个内容
:%s/pattern1/pattern2   # 用pattern2替换整个文件中与pattern1匹配的每个内容

文件操作

ZZ            # 保存对当前文件的更改,然后退出vi
:wq           # 保存对当前文件的更改,然后退出vi(同ZZ)
:w            # 保存对当前文件的更改
:w!           # 保存对当前文件的更改,如果有同名文件存在的话,就改写它
:q            # 退出vi(如果有未保存的更改,vi将发出抱怨,并"拒绝"退出)
:q!           # 退出vi,即使还有尚未保存的更改。所有未保存的更改将被丢失
:e filename   # 把指定文件载入vi进行编辑,如果指定文件不存在,将创建一个新文件
:e!           # 丢失所有更改,并从硬盘中重载已保存的文件(reload)

滚动屏幕

Ctrl+u        # 向上滚动半屏(up)
Ctrl+d        # 向下滚动半屏(down)
Ctrl+f        # 向前滚动全屏(forward)
Ctrl+b        # 向后滚动全屏(backward)
Ctrl+e        # 向下滚动一行(想不出了)
Ctrl+y        # 向上滚动一行(同样想不出)

常用命令

:set nu         # 显示行号
dd              # 删除当前行
d1G             # 删除从光标所在行开始,到第一行的所有行
dG              # 删除从光标所在行开始,到最后一行的所有行

yy              # 复制当前行
y1G             # 复制从光标所在行开始,到第一行的所有行
yG              # 复制从光标所在行开始,到最后一行的所有行

p               # 粘贴
r               # 替换所选
cc              # 替换当前行

u               # 撤销
Ctrl+r          # 重做上一个操作

/任意内容        # 查找命令
n               # 向下查找
N               # 向上查找
原文地址:https://www.cnblogs.com/inzens/p/6207446.html