在插入模式下定义映射,该映射仅适用于特定文件类型

时间:2011-10-15 02:31:03

标签: vim

我应该知道这一点,但我现在的想法是空白的......很长一晚......

如何定义仅在某个文件类型处于活动状态时才有效的映射(例如,markdown,我希望定义插入括号的映射/缩写)[因为我的语言布局中我的键盘上没有它们)?

3 个答案:

答案 0 :(得分:5)

定义仅在具有特定filetype的缓冲区中有效的映射 值,可以使用文件类型自动命令(请参阅:help autocmd:help FileType)和本地映射(请参阅:help map-local)的组合。

:autocmd FileType markdown inoremap <buffer> (( [
:autocmd FileType markdown inoremap <buffer> )) ]

答案 1 :(得分:2)

第一个强制性步骤确实是用:h :map-<buffer>来定义缓冲区本地映射,正如ib所说。

然后你可以选择。你可以:

  • 使用自动命令使你的.vimrc混乱
  • 或使用ftplugins,这是可以轻松重新分配的扩展解决方案,等等。

第一种方法很好,我们只使用vim来处理几种语言/文件类型,当我们只有很少的映射/命令/缩写/ ...在Vim的前几年就没问题了。经过一定数量的特定于ft的设置,第二个解决方案是首选的解决方案。

(顺便说一句,这个主题是重复的,但我现在懒得搜索其他帖子)

答案 2 :(得分:0)

在适当的地方添加(例如~/.vimrc):

au FileType markdown inoremap <C-b> [