说明:如果你准备把本文中的命令放到配置文件(比如 .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