0

私は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の場合にのみこの関数を呼び出す方法を考えています。

4

1 に答える 1

2

Vimではファイルタイプ固有の設定が可能です。スニペットをから~/.vimrceg~/.vim/ftplugin/html_inserttag.vimに移動し、マッピングをバッファローカルにします。

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

これはあなたがあなたのに持っていることを必要と:filetype plugin onします~/.vimrc。詳細については、を参照:help filetypesしてください。

于 2013-03-24T09:27:18.107 に答える