VI

返回“Linux”

警告

已恢复历史版本

当前版本 00000014 在备份中缺失;以下内容来自最新可读取版本 00000013。

vi命令

移动光标

k
j
h
l
w 下一个单词开始
2w 下下个单词
e 这个单词末尾
3e 第三个单词末尾
$ 行尾
^或0 行首
Ctrl-g 显示当前位置
G 文件末尾
gg 文件开始
123G 第123行
Ctrl-o 回到前一个位置
ctrl-i 回到后一个位置

插入

i 在当前字符前插入
a 在当前字符后插入
A 在行尾插入
o 当前行后插入一行
O 当前行前插入一行
<ESC> 退回普通模式

删除

x 删除一个字符
dw 删除到下个单词开始
d2w 删除两个单词
de 删除到这个单词末尾
d$ 删除到行尾
dd 删除整行
2dd 删除2行

修改

r 替换一个字符
R 替换多个字符
ce或cw 替换到单词末尾
c$ 替换到行尾
c2w 替换2个单词

查找

/ 向后查找
? 向前查找
n 继续查找
N 反向继续查找
% 查找匹配的括号
:s/old/new 将这一行中的一个old字符串替换成new。
:s/old/new/g 将这一行中所有old字符串替换成new。
:%s/old/new/g 将文件内所有old字符串替换成new。
:%s/old/new/gc 将文件内所有old字符串替换成new,每次替换前提示确认。
:#,#s/old/new/g 将文件中某两行间的old字符串替换成new。
:set ic 查找时忽略大小写
:set noic 区分大小写
:set hls 高亮显示查找结果
:set nohls 取消高亮查找结果
:nohlsearch 取消上次查找结果的高亮显示
:set is 增量搜索
:set nois 取消增量搜索
:/abc\c 临时忽略大小写查找字符串abc

恢复

u undo
U 整行修改undo
Ctrl-R redo

复制

v 选择一部分文本
y 复制选择的部分
yw 复制一个单词
p 插入复制或删除的内容

文件

:q! 不保存退出
:w 保存
:wq 保存退出
:w newfile 另存为newfile文件(或者选择的部分写到新文件)
:r file 将文件file内容插入到当前位置
:r !ls 将ls命令的执行结果插入到当前位置
:!make 执行外部命令make
:e abc 打开abc文件编辑

帮助

F1 帮助
:help 帮助
:help w 查看w命令帮助
:q 退出帮助
Ctrl-w Ctrl-w 切换窗口
<Tab> 补全命令
Ctrl-d 补全命令列表

参考资源