如何调用vimrc中的函数取决于文件类型

时间:2013-03-24 09:01:59

标签: vim

我在vimrc中有一个功能。该函数是关于在html中完成标记。

 42 function! InsertHtmlTag()
 43     let pat = '\c<\w\+\s*\(\s\+\w\+\s*=\s*[''#$;,()."a-z0-9]\+\)*\s*>'
 44     normal! a>
 45     let save_cursor = getpos('.')
 46     let result = matchstr(getline(save_cursor[1]), pat)
 47     if (search(pat, 'b', save_cursor[1]))
 48         normal! lyiwf>
 49         normal! a</
 50         normal! p
 51         normal! a>
 52     endif
 53     :call cursor(save_cursor[1], save_cursor[2], save_cursor[3])
 54 endfunction
 55 inoremap > <ESC>:call InsertHtmlTag()<CR>

但我最近发现了一些麻烦。当我编写C ++代码时,在我写#include <iostream>之后,vim用</iostream>完成它.... 我想知道只有在文件类型为.html时才能调用此函数的方法。

1 个答案:

答案 0 :(得分:2)

Vim允许特定于文件类型的配置。将代码段从~/.vimrc移至例如~/.vim/ftplugin/html_inserttag.vim,并将映射缓冲区设为本地:

inoremap <buffer> > <ESC>:call InsertHtmlTag()<CR>

这要求您:filetype plugin on中有~/.vimrc。有关详细信息,请参阅:help filetypes