h 左移光标
l 右移光标
j 下移光标
k 上移光标
w 光标移到下一个单词
b 光标移到上一个单词
$ 光标移到行尾
0 光标移到当前行的第一个有意义字符
^ 光标移到行首
f 光标移到当前光标位置后面的第一个指定的字符下
F 光标移到当前光标位置前面的第一个指定的字符下
t 光标移到当前光标位置后面的第一个指定的字符前
T 光标移到当前光标位置前面的第一个指定的字符前
% 光标移动到与当前括号匹配的括号处
nG 光标移动到指定行
:n 光标移动到指定行
ctr-u 内容向上滚动半屏
ctr-d 内容乡下滚动半屏
ctr-e 内容向上滚动一行
ctr-y 内容向下滚动一行
ctr-f 内容向下滚动一屏
ctr-b 内容向上滚动一屏
zz 将当前行置于屏幕中央
zt 将当前行置于屏幕顶端
zb 将当前行置于屏幕底端
/ 向后搜索
? 向前搜索
`` 跳转到前一个位置
`a 跳转到标记为a的位置
ma 将光标的当前位置标记为a
`[ 跳转到最后一次修改的起始位置
`] 跳转到最后一次修改的结束位置
`" 跳转到上次编辑该文件时光标最后停留的位置
i 进入插入模式
R 进入替换模式
x 删除光标下的字符
dd 删除当前行
d移动命令 删除当前光标位置到移动到的目标之间的字符
J 删除换行符
u 取消上次操作
ctr-R 重做
a 追加插入
A 行尾插入
o 在当前行下插入一行
O 在当前行上插入一行
c 修改指定的内容,和d相似
r 替换光标所在位置的字符
p 将删除缓冲区中的内容插入光标当前的位置
y 复制
:s 替换
:substitute 替换
:%s/a/a/c 对所有行替换
:m,ns/a/a/c 对从m到n行替换
......
:edit 编辑一个新的文件
:previous 打开文件列表中的前一个文件
:next 打开文件列表中的后一个文件
:args 指定一个文件列表
:saveas 给文件改名
:file 给正在编辑的文件改名,但不保存
:split 将窗口分成上下两个窗口
:vsplit 将窗口分成左右两个窗口
:split 文件 为制定的文件打开新窗口
:new 打开新窗口,以及一个无名的缓冲区
:close 关闭窗口
ctr-w w 切换窗口
ctr-w [hjkl] 切换到窗口
ctr-w [HJKL] 移动窗口
nly 只保存当前窗口,其他窗口关闭
ctw-w + 增加当前窗口高度
ctw-w - 减小当前窗口高度
:qall 所有的窗口都退出
all 所有的窗口内容都写入文件
ZZ 退出vi
新闻热点
疑难解答