vi/vim 命令手册(高级篇)
2010-05-04 12:58
253 查看
[align=center]vi/vim 命令手册(高级篇)[/align]
多文件编辑
如果当前行还没有保存(并且 autowrite 未设置),则不能使用:e、:n和:rew命令。命令后面的!使得安全特性无效。
[align=left]多窗口(vim)[/align]
搜索与重复
搜索模式pat可以时一个字符串,也可以是一个正则表达式。vi使用一套专用的字符序列来执行一行内的搜索。
替换
源模式s1也可以是正则表达式。使用欧冠地址时,"."代表当前行,"$"代表最后一行,"1,$"代表整个文件。
[align=left]标志与书签[/align]
[align=left]重做与恢复[/align]
[align=left]缩写表示[/align]
[align=left]映射键[/align]
[align=left]与UNIX的接口命令[/align]
[align=left] [/align]
多文件编辑
如果当前行还没有保存(并且 autowrite 未设置),则不能使用:e、:n和:rew命令。命令后面的!使得安全特性无效。
[align=left] 命令[/align] | [align=left]功能 [/align] |
:e foo | [align=left] 停止对当前文件的编辑,开始编辑foo文件[/align] |
:e! foo | [align=left] 同上,但是取消对当前文件的修改[/align] |
[align=left] :e![/align] | [align=left] 装入当前文件的最近保存的内容[/align] |
[align=left] [Ctrl+^][/align] | [align=left] 返回到最近编辑的文件[/align] |
[align=left] :n[/align] | [align=left] 编辑下一个文件(当用vi同时编辑多个文件时)[/align] |
:set autowrite(aw) | [align=left] 在用:n切换到下一个文件之前自动保存当前文件[/align] |
[align=left] :rew[/align] | [align=left] 返回到文件列表的第一个文件(当用vi同时编辑多个文件时)[/align] |
:r foo | [align=left] 把foo文件的内容插入当前行的下面[/align] |
[align=left] 命令[/align] | [align=left]功能 [/align] |
[align=left] :sq[/align] | [align=left] 把当前窗口拆分为两个[/align] |
[align=left] :new[/align] | [align=left] 打开一个新的空白窗口[/align] |
[align=left] :[Ctrl+w][Ctrl+w][/align] | [align=left] 在窗口之间切换[/align] |
[align=left] :on[/align] | [align=left] 把当前窗口变为唯一的窗口[/align] |
[align=left] :q[/align] | [align=left] 退出当前窗口[/align] |
[align=left] :qa[/align] | [align=left] 退出所有窗口[/align] |
[align=left] :xa[/align] | [align=left] 保存并退出全部窗口[/align] |
[align=left] [Ctrl]+[/align] | [align=left] 增大窗口尺寸[/align] |
[align=left] [Ctrl]-[/align] | [align=left] 减小窗口尺寸[/align] |
搜索模式pat可以时一个字符串,也可以是一个正则表达式。vi使用一套专用的字符序列来执行一行内的搜索。
[align=left] 命令[/align] | [align=left]功能 [/align] |
[align=left] /pat[/align] | [align=left] 向前搜索pat[/align] |
[align=left] ?pat[/align] | [align=left] 向后搜索pat[/align] |
[align=left] /printf[/align] | [align=left] 向前搜索printf[/align] |
[align=left] ?[0-0]$[/align] | [align=left] 向后搜索行尾的数字[/align] |
[align=left] /^#[/align] | [align=left] 向前搜索行首的#[/align] |
[align=left] n[/align] | [align=left] 按上次搜索方向重复搜索[/align] |
[align=left] N[/align] | [align=left] 按与前次搜索的相反方向重复搜索[/align] |
:set wrapscan(ws) | [align=left] 继续搜索直至达到文件尾[/align] |
:set ignorecase(ic) | [align=left] 搜索时不区分大小写[/align] |
:set magic | [align=left] 保留正则表达式字符的意义[/align] |
[align=left] fc[/align] | [align=left] 在当前行向前搜索字符c[/align] |
[align=left] Fc[/align] | [align=left] 在当前行向后搜索字符c[/align] |
[align=left] ;[/align] | [align=left] 在当前行重复上次向前搜索[/align] |
[align=left] ,[/align] | [align=left] 在当前行重复上次逆向搜索[/align] |
源模式s1也可以是正则表达式。使用欧冠地址时,"."代表当前行,"$"代表最后一行,"1,$"代表整个文件。
[align=left] 命令[/align] | [align=left]功能 [/align] |
[align=left] :.s/s1/s2[/align] | [align=left] 把当前行中第一次出现的s1替换为s2[/align] |
[align=left] :1,$s/s1/s2[/align] | [align=left] 把整个文件里的s1替换为s2[/align] |
[align=left] :1,$s/echo/printf/g[/align] | [align=left] 把全部的echo替换为printf[/align] |
[align=left] :1,$s/s1/s2/gc[/align] | [align=left] 按交互方式把全部s1替换为s2[/align] |
[align=left] :1,$s/#//g[/align] | [align=left] 删除文件中所有的“#”[/align] |
[align=left] :3,10s/^/#/g[/align] | [align=left] 在3至10行的行首插入“#”[/align] |
[align=left] :$s/$/;/[/align] | [align=left] 在最后一行的行尾插入“;”[/align] |
[align=left] :1,$s/s1/s2/g[/align] | [align=left] 把所有的s1替换为s2[/align] |
[align=left] :1,$s/HEAD/<&>/g[/align] | [align=left] 把所有的HEAD替换为<HEAD>[/align] |
[align=left] 命令[/align] | [align=left]功能 [/align] |
[align=left] ma[/align] | [align=left]设置一个标签a [/align] |
[align=left] 'a[/align] | [align=left] 移动到标签a[/align] |
[align=left] "[/align] | [align=left] 在当前标志与前一个标志位置之间切换[/align] |
[align=left] 命令[/align] | [align=left]功能 [/align] |
[align=left] .[/align] | [align=left] 重复上次命令[/align] |
[align=left] u[/align] | [align=left] 取消上次的编辑命令(在vim里取消所有以前的命令)[/align] |
[align=left] [Ctrl+r][/align] | [align=left] 重做上次取消的操作(只限于vim)[/align] |
[align=left] U[/align] | [align=left] 取消所有对当前行的操作[/align] |
[align=left] "4p[/align] | [align=left] 从缓冲区中恢复第4次最近的删除操作[/align] |
[align=left] 命令[/align] | [align=left]功能 [/align] |
:ab name stg | [align=left] 把name缩写为stg[/align] |
:unab stg | [align=left] 删除stg缩写[/align] |
[align=left] :ab[/align] | [align=left] 列出所有的缩写[/align] |
[align=left] 命令[/align] | [align=left]功能 [/align] |
:map key commands | [align=left] 把key映射到commands[/align] |
:map! key commands | [align=left] 在输入模式下把key映射到commands[/align] |
:unmap key | [align=left] 取消命令模式下的key映射[/align] |
:unmap! key | [align=left] 取消输入模式下的key映射[/align] |
[align=left] :map[/align] | [align=left] 显示命令模式下所有的映射[/align] |
[align=left] :map![/align] | [align=left] 显示输入模式下的所有映射[/align] |
[align=left] 命令[/align] | [align=left]功能 [/align] |
[align=left] :!cmd[/align] | [align=left] 执行UNIX的cmd命令[/align] |
[align=left] :!%[/align] | [align=left] 把当前文件作为shell或perl脚本执行[/align] |
:r !cmd | [align=left] 把cmd命令的结果插入到当前行的下面[/align] |
:r !head -n 3 foo | [align=left] 把foo文件前三行内容插入到当前行的下面[/align] |
[align=left] sh[/align] | 暂时退出UNIX shell 环境 |
[align=left] [Ctrl+z][/align] | [align=left] 暂停编辑(用fg命令可以返回vi编辑器)[/align] |
[align=left] :!cc%[/align] | [align=left] 编译正在编辑的C程序[/align] |
:!javac % | [align=left] 编译正在编辑的Java程序[/align] |
相关文章推荐
- vi/vim 命令手册(高级篇)
- vi/vim 命令手册
- VI高级命令集锦及VIM应用实例
- Unix Linux vi vim 使用手册|vi vim 常用命令 详解
- VI高级命令集锦及VIM应用实例
- vi/vim 命令速查手册
- vi/vim 命令手册(初级篇)
- VI高级命令集锦及VIM应用实例
- vi/vim 命令手册(初级篇)
- vi,vim命令
- Vi and Vim 常用命令
- Linux系统中Vi常用命令及高级应用
- Linux操作系统基础知识vi/vim命令
- linux vi/vim 命令
- vi/vim 光标移动命令
- 实用手册:130+ 提高开发效率的 vim 常用命令
- VI高级命令集锦
- vi/vim 中可以使用 :s 命令来替换字符串。
- Linux 系统下 vi/vim 文本编辑器命令介绍