スペースのhighlight
行末スペースを別のhighlightにしたくて、
こんな感じの設定にしていたけど問題があった。
highlight SpecialKey cterm=underline set list set listchars=trail:\ ,tab:>- highlight WhitespaceEOL guibg=red ctermbg=red match WhitespaceEOL /\s\+$/
:editで開く場合は問題ないが、Unite.vimで開くとSpecialKeyに戻ってしまう。
以下のような設定にしたい
- :editでもUnite.vimでもファイルを開く
- 行末スペースのhighlightはlistcharsのSpecialKeyとは別のhighlightにしたい
- 全角スペースも別のhighlightにしたい
" listcharsからtrailを消す augroup HighlightSpaces autocmd! autocmd BufNew,BufRead * highlight WhitespaceEOL guibg=red ctermbg=red autocmd BufNew,BufRead * syntax match WhitespaceEOL /\s\+$/ autocmd BufNew,BufRead * highlight JISX0208Space cterm=underline guifg=lightblue ctermfg=lightblue autocmd BufNew,BufRead * syntax match JISX0208Space " " augroup END
これで問題なさそう。
※ 2013/1/31追記
ファイルを指定せずに起動した時にきかなかった。
highlightも変えた。
" listcharsのtrailを消す augroup HighlightSpaces autocmd! autocmd VimEnter,ColorScheme * highlight WhitespaceEOL gui=underline guifg=red guibg=red cterm=underline ctermfg=red ctermbg=red autocmd VimEnter,WinEnter,BufNew,BufRead * syntax match WhitespaceEOL /\s\+$/ autocmd VimEnter,ColorScheme * highlight JISX0208Space gui=underline guifg=lightblue cterm=underline ctermfg=lightblue autocmd VimEnter,WinEnter,BufNew,BufRead * syntax match JISX0208Space " " augroup END
※ 2013/1/31 20:40 追記
ソース内でうまくきかなかった。
matchaddでやったらできた。
" listcharsのtrailはどちらでもよい function! SetSpacesHighlight() highlight WhitespaceEOL gui=underline guifg=red guibg=red cterm=underline ctermfg=red ctermbg=red highlight JISX0208Space gui=underline guifg=lightblue cterm=underline ctermfg=lightblue endfunction call SetSpacesHighlight() augroup HighlightSpaces autocmd! autocmd VimEnter,ColorScheme * call SetSpacesHighlight() autocmd VimEnter,WinEnter,BufNew,BufRead * match WhitespaceEOL /\s\+$/ autocmd VimEnter,WinEnter,BufNew,BufRead * call matchadd("JISX0208Space", " ") augroup END