回答:
@Sundarの回答と同じ精神で、少し柔軟な構文を使用して次のことができます。
let ftToIgnore = ['latex', 'plaintex']
autocmd BufWritePre * if index(ftToIgnore, &ft) < 0 | set your options
私はこの構文を好む傾向があります:
どうですか:
autocmd WinEnter,BufEnter * if &filetype != "latex" && &filetype != "plaintex" | set cursorline | endif
より良いフォーマット
autocmd WinEnter,BufEnter * if &filetype != "latex" && &filetype != "plaintex"
\ | set cursorline
\ | endif
これはfiletype
Vimによって検出または設定されたに依存するため、大文字と小文字の区別に関する問題はありません。(set filetype?
Vimのコマンドラインで実行して、texファイルが何として検出されているかを確認したい場合があります)。
私はあなたが望むものをサポートしているように見えるものは何も見つかりませんでしたが、少しのスクリプトでまったく同じことができます:
function! s:ToggleCursorLine(open) abort
let l:extension = expand('%:e')
if l:extension !=? 'tex'
if a:open
set cursorline
else
set nocursorline
endif
endif
endfunction
augroup cursorline
autocmd!
autocmd WinLeave,BufLeave * call s:ToggleCursorLine(1)
autocmd WinEnter,BufEnter * call s:ToggleCursorLine(0)
augroup end
参照 : :h expand()
!=#
ではなく使用したい!=
場合があり!=?
ます。それ以外の場合、結果はの値によって異なりますignorecase
。
!=#
して!=?
ください。上なので:h expr4
、それは、Windows / Unixのは言及していません。