🔦

Vimで全角スペースその他不可視文字をハイライトする設定

1 min read

「全角スペースの表示」は何番煎じかわかりませんが、複数種類に対応しているものがパッと見つからなかったので書きました。

コード

.vimrcinit.vimに記述してください。

augroup vimrc_syntax
  autocmd!
  highlight default ExtraWhitespace ctermbg=darkmagenta guibg=darkmagenta

  " visualize whitespace characters
  " u2000 ' ' en quad
  " u2001 ' ' em quad
  " u2002 ' ' en space
  " u2003 ' ' em space
  " u2004 ' ' three-per em space
  " u2005 ' ' four-per em space
  " u2006 ' ' six-per em space
  " u2007 ' ' figure space
  " u2008 ' ' punctuation space
  " u2009 ' ' thin space
  " u200A ' ' hair space
  " u200B '​' zero-width space
  " u3000 ' ' ideographic (zenkaku) space
  autocmd VimEnter,WinEnter,BufRead *
        \ call matchadd('ExtraWhitespace', "[\u2000-\u200B\u3000]")
augroup END

全角スペース以外の特殊スペースもハイライトします。通常のスペースやtabはlistcharsで。
上記では色をdarkmagentaにしていますが、カラースキームによっては見づらいかもしれませんので、お好みで設定してください。

U+00A0(NO-BREAK SPACE)はハイライトできませんでした。やり方のわかる方がいらっしゃいましたらコメントいただけると嬉しいです。

参考

https://vim-jp.org/vim-users-jp/2009/07/12/Hack-40.html
https://ja.wikipedia.org/wiki/スペース#コンピュータにおけるスペース
https://pata2.jp/127/stylesheets/css_others/whitespace_character.html

Discussion

ログインするとコメントできます