软件是对质量的不懈追求

vim 的一些高级用法

说明:如果你准备把本文中的命令放到配置文件(比如 .vimrc)中而不是在命令行执行,那么请去掉开头的冒号。

★ 键映射

:maptype key command

其中,key 是要映射的键(序列),command 是所要映射的命令,maptype 包括如下几种:

map  命令,可视和命令追加模式下的键映射

vmap 可视模式下的键映射

nmap 命令模式下的键映射

omap 命令追加模式下的键映射

map! 插入和命令行模式下的键映射

imap 插入模式下的键映射

cmap 命令行模式下的键映射

说明:命令追加模式指的是命令输入中的状态,也就是在输入一个需要多个按键的命令时,已经开始输入但未完成的状态。

举个例子,

:map <F2> gg

的意思是在命令,可视和命令追加模式把 F2 键映射为命令 gg,也就是说,当在这三种模式下时,按下 F2 键,就相当于按下了键序列 gg,其作用是定位到第一行。

要想避免 vim 把你映射的 command 中的内容再次映射的话,应该使用 noremap,其格式与 map 时相同。这时候,上面的各种 maptype 分别对应如下:

noremap  命令,可视和命令追加模式下的键映射(无二次映射的)

vnoremap 可视模式下的键映射(无二次映射的)

nnoremap 命令模式下的键映射(无二次映射的)

onoremap 命令追加模式下的键映射(无二次映射的)

noremap! 插入和命令行模式下的键映射(无二次映射的)

inoremap 插入模式下的键映射(无二次映射的)

cnoremap 命令行模式下的键映射(无二次映射的)

取消一个键映射用 unmap,格式为 unmap key。其中 key 为之前定义了映射的键,unmap 可以换为如下几种之一:

unmap  取消命令,可视和命令追加模式下的键映射

vunmap 取消可视模式下的键映射

nunmap 取消命令模式下的键映射

ounmap 取消命令追加模式下的键映射

unmap! 取消插入和命令行模式下的键映射

iunmap 取消插入模式下的键映射

cunmap 取消命令行模式下的键映射

★ 把当前目录设为正在编辑的文件所在的目录

:cd %:p:h

说明:只在类 Unix 操作系统下可用。

:lcd %:p:h

说明:在所有操作系统下可用。

★ 打开文件的时候自动将当前目录设为该文件所在的目录

在 .vimrc 中加入如下行:

:au BufEnter * :cd! %:p:h

★ 转换文件格式

由于 Unix、Window 和 MacOS 的换行符的内部表示不一样,因此有时候需要转换文件格式。

将文件格式转换为 Unix 格式:

:set fileformat=unix

将文件格式转换为 Windows 格式:

:set fileformat=dos

★ 让 gvim 启动时窗口最大化(只在 Windows 下可用)

在 _vimrc 中加入如下行

autocmd GUIEnter * simalt ~x

posted on 2009-11-14 14:08 BlakeSu 阅读(277) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: