列出这些东西纯粹是为了方便自己查阅。
h / <- | 光标向左移动一个字符 |
j / -> | 光标向下移动一个字符 |
k /向上方向键 | 光标向上移动一个字符 |
l /向右方向键 | 光标向右移动一个字符 |
ctrl+f | 屏幕向下移动一页,等于page down |
ctrl+b | 屏幕向上移动一页,等于page up |
n<space> | 向右移动n个字符 |
0 | 数字0,移动到该行的最前面字符处 |
$ | 移动到该行的最后面字符处 |
G | 移动到这个文件的最后一行 |
nG | 移动到这个文件第n行 |
gg | 移动到这个文件的第一行,等于1G |
n<Enter> | 光标向下移动n行 |
/word | 向下寻找word字符串 |
?word | 向上寻找word字符串 |
n | 重复前一个搜索的动作 |
N | 反向进行前一个搜索操作 |
n1、n2s/word1/word2/g | 在第n1、n2行之间寻找word1字符串,并将该字符串替换为word2。 |
1、$s/word1/word2/g | 从第一行到最后一行寻找word1,并将该字符串替换为word2。 |
1、$s/word1/word2/gc | 从第一行到最后一行寻找word1,并将该字符串替换为word2,并提示用户是否操作 |
x X | x 相当del,X等于backspace |
nx | 连续向后删除n个字符 |
dd | 删除光标所在的那一行 |
ndd | 从光标位置开始,删除向下n列 |
yy | 复制光标所在的那一行 |
nyy | 复制光标所在的向下n行 |
p P | p 粘贴到光标的下一行 P贴在光标上一行 |
u | 撤销前一个动作 |
ctrl + r | 重做上一个动作 |
. | 重复前一个动作 |
d1G | 删除光标所在位置到第一行的所有数据 |
dG | 删除光标所在位置到最后一行的所有数据 |
d$ | 删除光标所在位置到该行的最后一个字符 |
d0 | 删除光标所在位置到该行的最前面一个字符 |
y1G | 复制光标所在位置到第一行的所有数据 |
yG | 复制光标所在位置到最后一行的所有数据 |
y0 | 复制光标所在位置到该行的最前面一个字符 |
y$ | 复制光标所在位置到该行的最后一个字符 |
i I | i 在光标所在字符插入 I 在光标所在行的第一个非空格符开始插入 |
a A | a 在光标所在下一个字符插入,A 在光标所在行的最后一个字符开始插入 |
o O | o 在光标所在行的下一行插入新的一行,O 在光标所在行的上一行插入新的一行 |
r R | r 替换光标所在的字符 R 一直替换光标所在的字符,知道按下esc |
: e! | 将文件还原到最原始的状态 |
: ZZ | 文件没有更改,不存储离开,否则,存储后离开 |
: w [filename] | 将编辑的数据存储成另一个文件 |
: r [filename] | 读取filename的内容添加到光标所在行的后面 |
: n1、n2 w [filename] | 将n1到n2的内容存储成filename文件 |
: ! command | 暂时离开vi,执行command的显示结果,可在vi中查看command的显示结果。 |
: set nu | 显示行号 |
: set nonu | 与set nu相反,取消行号 |
多窗口功能:
:sp [filename] 打开一个新窗口,如果加上filename,表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件内容。
:ctrl+wj 光标移到下方的窗口
:ctrl+wk 光标移到上面的窗口
:ctrl+wq 结束离开