使用`FileType`事件时是否可以包含多种文件类型?

时间:2015-02-03 22:37:24

标签: vim latex

例如,我想在tex之类的文件中映射一个密钥,该文件包含许多不同风格的tex文件。我必须使用这样的多个命令吗?

au FileType tex nm <C-H> <Plug>IMAP_JumpForward
au FileType latex nm <C-H> <Plug>IMAP_JumpForward
au FileType context nm <C-H> <Plug>IMAP_JumpForward
au FileType plaintex nm <C-H> <Plug>IMAP_JumpForward
...

1 个答案:

答案 0 :(得分:21)

绝对:

au FileType tex,latex,context,plaintex nm <C-H> <Plug>IMAP_JumpForward

一些想法:

  • 应该使用缓冲区本地映射而不是全局映射
  • 使用短名称只有 缺点和专业版。唐&#39;吨
  • 此autocmd应位于
  • 组中
  • Autocmd应该被清除(在一个组内),以便重新采购不是问题
  • 也许使用后ftplugin脚本。例如~/.vim/after/ftplugin/tex.vim代替:autocmd,因为它们更易于管理
  • 查看romainl idiomatic vimrc了解更多vimrc做/不要

清理版本:

augroup tex_mappings
    autocmd!
    autocmd FileType tex,latex,context,plaintex nmap <buffer> <c-h> <Plug>IMAP_JumpForward
augroup END

或者将以下内容添加到~/.vim/after/ftplugin/txt.vim

nmap <buffer> <c-h> <Plug>IMAP_JumpForward

注意:使用ftplugin方法,您需要为每个FileType添加此行(或使用:source

如需更多帮助,请参阅:

:h :au
:h :aug
:h :map-local
:h after-directory