web-dev-qa-db-ja.com

Vimで特定のファイルタイプにのみローカルマッチを設定するにはどうすればよいですか?

Vim ではローカル設定を次のように設定できます:

 setlocal number

特定のファイルタイプに対してのみローカル一致を設定するにはどうすればよいですか?

私はこれを使用します:

 autocmd! BufEnter *.py,.vimrc,*.sh,*.c* :match ColorColumn /\%>80v.\+/

しかし、同じセッションで別のファイルタイプのファイルを開くと、一致するColorColumnが得られます。

3
juanpablo

これは作者にとってもはや役に立たないかもしれませんが、私は.vim/ftplugin/python.vimに以下を入れました:

if exists('+colorcolumn')
    setlocal colorcolumn=81
else
    au! BufEnter <buffer> match ColorColumn /\%81v.*/
endif

Ftpluginにあるため、pythonファイルに対してのみ発生し、BufEnterはpythonファイルが含まれているバッファーに対してローカルに保持します。

3
Edd

私はこれでそれを解決しました:

augroup longLines
    autocmd! BufEnter *.py,.vimrc,*.sh,*.c* :match ColorColumn /\%>80v.\+/                      
augroup END
1
juanpablo

これにより、 Python または [〜#〜] c [〜#〜] ファイルタイプが開いているときに強調表示がアクティブになります(他のファイルタイプを自由に追加してください。 * .sh拡張子がどのファイルタイプに属しているかを知り、他のすべてのファイルタイプを削除します。

augroup LongLines
    autocmd!
    autocmd FileType * match none
    autocmd FileType python,c,sh match ColorColumn /\%>80v.\+/
augroup END
1
Rook