您的位置:首页 > 其它

vi/vim 命令手册(高级篇)

2010-05-04 12:58 253 查看
[align=center]vi/vim 命令手册(高级篇)[/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]多窗口(vim[/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]功能 [/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] 重复上次命令[/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]
[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]
[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]UNIX的接口命令[/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]
[align=left] [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: