分类: LINUX
2011-02-28 00:24:43
命令 | 功能 |
:e foo | 停止对当前文件的编辑,开始编辑foo文件 |
:e! foo | 同上,但是取消对当前文件的修改 |
:e! | 装入当前文件的最近保存的内容 |
[Ctrl+^] | 返回到最近编辑的文件 |
:n | 编辑下一个文件(当用vi同时编辑多个文件时) |
:set autowrite(aw) | 在用:n切换到下一个文件之前自动保存当前文件 |
:rew | 返回到文件列表的第一个文件(当用vi同时编辑多个文件时) |
:r foo | 把foo文件的内容插入当前行的下面 |
命令 | 功能 |
:sq | 把当前窗口拆分为两个 |
:new | 打开一个新的空白窗口 |
:[Ctrl+w][Ctrl+w] | 在窗口之间切换 |
:on | 把当前窗口变为唯一的窗口 |
:q | 退出当前窗口 |
:qa | 退出所有窗口 |
:xa | 保存并退出全部窗口 |
[Ctrl]+ | 增大窗口尺寸 |
[Ctrl]- | 减小窗口尺寸 |
命令 | 功能 |
/pat | 向前搜索pat |
?pat | 向后搜索pat |
/printf | 向前搜索printf |
?[0-0]$ | 向后搜索行尾的数字 |
/^# | 向前搜索行首的# |
n | 按上次搜索方向重复搜索 |
N | 按与前次搜索的相反方向重复搜索 |
:set wrapscan(ws) | 继续搜索直至达到文件尾 |
:set ignorecase(ic) | 搜索时不区分大小写 |
:set magic | 保留正则表达式字符的意义 |
fc | 在当前行向前搜索字符c |
Fc | 在当前行向后搜索字符c |
; | 在当前行重复上次向前搜索 |
, | 在当前行重复上次逆向搜索 |
命令 | 功能 |
:.s/s1/s2 | 把当前行中第一次出现的s1替换为s2 |
:1,$s/s1/s2 | 把整个文件里的s1替换为s2 |
:1,$s/echo/printf/g | 把全部的echo替换为printf |
:1,$s/s1/s2/gc | 按交互方式把全部s1替换为s2 |
:1,$s/#//g | 删除文件中所有的“#” |
:3,10s/^/#/g | 在3至10行的行首插入“#” |
:$s/$/;/ | 在最后一行的行尾插入“;” |
:1,$s/s1/s2/g | 把所有的s1替换为s2 |
:1,$s/HEAD/<&>/g | 把所有的HEAD替换为 |
命令 | 功能 |
ma | 设置一个标签a |
'a | 移动到标签a |
" | 在当前标志与前一个标志位置之间切换 |
命令 | 功能 |
. | 重复上次命令 |
u | 取消上次的编辑命令(在vim里取消所有以前的命令) |
[Ctrl+r] | 重做上次取消的操作(只限于vim) |
U | 取消所有对当前行的操作 |
"4p | 从缓冲区中恢复第4次最近的删除操作 |
命令 | 功能 |
:ab name stg | 把name缩写为stg |
:unab stg | 删除stg缩写 |
:ab | 列出所有的缩写 |
命令 | 功能 |
:map key commands | 把key映射到commands |
:map! key commands | 在输入模式下把key映射到commands |
:unmap key | 取消命令模式下的key映射 |
:unmap! key | 取消输入模式下的key映射 |
:map | 显示命令模式下所有的映射 |
:map! | 显示输入模式下的所有映射 |
命令 | 功能 |
:!cmd | 执行UNIX的cmd命令 |
:!% | 把当前文件作为shell或perl脚本执行 |
:r !cmd | 把cmd命令的结果插入到当前行的下面 |
:r !head -n 3 foo | 把foo文件前三行内容插入到当前行的下面 |
sh | 暂时退出UNIX shell 环境 |
[Ctrl+z] | 暂停编辑(用fg命令可以返回vi编辑器) |
:!cc% | 编译正在编辑的C程序 |
:!javac % | 编译正在编辑的Java程序 |