Vi命令大全
:set all 打印所有选项
:set nooption 关闭option 选项
:set nu 每行前打印行号
:set showmode 显示是输入模式还是替换模式
:set noic 查找时忽略大小写
:set list 显示制表符(^I) 和行尾符号
:set ts=8 为文本输入设置tab stops
:set window=n 设置文本窗口显示n 行
移动
G 移到文件的最后一行
gg 移动到第一行
nG 移到文件的第n 行
m(a-z) 用一个字母来标记当前位置,如用mz 表示标记z
‘(a-z) 将光标移动到指定的标记,如用’z 表示移动到z
”(两个单引号) -回到光标跳转前的位置
% -移动到与之匹配的括号上去(),{},[],<>等,后面会看到,”%”很有用。
CTRL+G -得到当前光标在文件中的位置
0 或| 移到当前行的第一列
$ 移到当前行的最后一个字符
n| 移到当前行的第n 列
+ 或return 移到下一行的第一个字符
– 移到前一行的第一个非空字符
:r file 读入文件file 内容,并插在当前行后
:nr file 读入文件file 内容,并插在第n 行后
删除
dG 删除行,直到文件结束
dd 删除整行
:set ic 查找时忽略大小写
:set noic 查找时对大小写敏感
:v/text/command 在所有不包含text 的行运行command 所表示的命令
yy 将当前行的内容放入临时缓冲区
nyy 将n 行的内容放入临时缓冲区
p 将临时缓冲区中的文本放入光标后
P 将临时缓冲区中的文本放入光标前
u 撤消最后一次修改
U 撤消当前行的所有修改
vi 中的shell 转义命令
:!command 执行shell 的command 命令,如:!ls
:!! 执行前一个shell 命令
:r!command 读取command 命令的输入并插入,如:r!ls 会先执行ls ,然后读入内容
:w!command 将当前已编辑文件作为command 命令的标准输入并执行command 命令,如:w!grep all
:cd Director y 将当前工作目录更改为directory 所表示的目录
:sh 将启动一个子shell ,使用^d(ctrl+d) 返回vi
:so file 在shell 程序file 中读入和执行命令
:%s/^/Head content/g 全局插入开头信息
:%s/$/Tail content/g 全局插入尾部信息
:%s= *$== 将所有行尾多余的空格删除
:g/^\s*$/d 将所有不包含字符(空格也不包含)的空行删除.