vi filename 打开、新建文件
命令模式下:
:q 退出
:q! 强制退出
:w 保存
:wq 强制保存退出
hjkl 上下左右移动光标
下一页 ctrl + f
下半页 ctrl + d
上一页 ctrl + b
上半页 ctrl + u
H 将光标移至屏幕的左上角。如果H前面指定位移值n,则光标移到距屏幕顶部(n-1)行的行首。
M 将光标移至屏幕中间行的开头。
L 将光标移至屏幕的最底行。
x 删除光标所在的字符,如果前面给出一个数值n(例如,5x),则由光标所在字符开始向右删除n(5)个字符。
X 删除光标前面的那个字符。如果前面给出数值n,则由光标之前的那个字符开始向左删除n个字符。
dd 删除光标所在的整行。
D 从光标位置开始删除到行尾。
d... d与光标移动命令(以...表示)组合而成的命令就从光标位置开始删到由光标移动限定的文本对象的末尾。
u 如果插入后用u命令,就删除刚插入的正文;如果删除后用它,就相当于又插入刚删除的正文。所有修改文本的命令都视为插入。
U 把当前行恢复成被编辑之前的状态,不管把光标移到该行后对它编辑了多少次。
. 重复实现刚才的插入命令或删除命令。
i 在字符前插入
I 在光标所在行的行首插入新增文本,行首是该行的第一个非空白字符
a 在字符后追加
A 在光标所在行的行尾添加文本
o 在光标所在行的下面新开辟一行,随后输入的文本就插入在这一行上
O 在光标所在行的上面新开辟一行,随后输入的文本就插入在这一行上
======================================
r 用随后输入的单个字符取代光标所在的字符。
R 用随后输入的文本取代光标位及其右面的若干字符,每输入一个字符就替代原有的一个字符。
s 用随后输入的的正文替换光标所在的字符。
S 用新输入的正文替换当前行(整行)。
^ 将光标移到当前行的第一个非空白符(非制表符或非空格符)
$ 将光标移至当前行的行尾,停在最后一个字符上
G 将光标移至由行号所指定的行的开头。如果没有给出行号,则光标移至该文件最后一行的开头。
w 将光标向前移至下一个词(以标点符号或空白符分开的字母数字串)的开头。
W 将光标向前移至下一个词(非空白字符串)的开头。
b 光标后退到先前一个词 (以标点符号或空白符分开的字母数字串)的开头。
B 光标后退到先前一个词 (非空白字符串)的开头。
e 将光标移至词尾(词是以标点符号或空白符分开的字母数字串)。
E 将光标移至词尾(词是非空白字符串)。