我在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时才能调用此函数的方法。
答案 0 :(得分:2)
Vim允许特定于文件类型的配置。将代码段从~/.vimrc
移至例如~/.vim/ftplugin/html_inserttag.vim
,并将映射缓冲区设为本地:
inoremap <buffer> > <ESC>:call InsertHtmlTag()<CR>
这要求您:filetype plugin on
中有~/.vimrc
。有关详细信息,请参阅:help filetypes
。