171

Vim に非 ASCII 文字を強調表示させようとしています。そのための利用可能な設定、正規表現検索パターン、またはプラグインはありますか?

4

8 に答える 8

39

はい、一致した文字列を強調表示するネイティブ機能があります。Vim 内で次の操作を行います。

:help highlight
:help syn-match

syn-match一致する文字列がグループに分類されることを定義します。 highlightグループで使用される色を定義します。vimrc ファイルの構文強調表示について考えてみてください。

したがって、.vimrc ファイルで以下のコマンドを使用できます。

syntax match nonascii "[^\x00-\x7F]"
highlight nonascii guibg=Red ctermbg=2
于 2013-06-07T16:00:19.933 に答える
18

検索エンジン経由でここにたどり着き、非 ASCII 文字の強調表示を達成できない他の (これからはあまり運が良くない) 人々のために、これを試してください (これを .vimrc に入れます):

highlight nonascii guibg=Red ctermbg=1 term=standout
au BufReadPost * syntax match nonascii "[^\u0000-\u007F]"

これには、通常の (ファイルタイプ [ファイル拡張子] ベースの) 構文定義と衝突しないという追加の利点があります。

于 2014-10-06T03:31:32.527 に答える
8

この正規表現は強調表示にも機能します。これは、 briceolion.comからの「vim remove non-ascii characters」の最初の Google ヒットであり、次の:set hlsearchように強調表示されます。

/[^[:alnum:][:punct:][:space:]]/
于 2015-12-29T18:43:13.647 に答える
4

印刷できない文字にも興味がある場合は、これを使用してください。/[^\x00-\xff]/

関数で使用します:

 function! NonPrintable()
   setlocal enc=utf8
   if search('[^\x00-\xff]') != 0
     call matchadd('Error', '[^\x00-\xff]')
     echo 'Non printable characters in text'
   else
     setlocal enc=latin1
     echo 'All characters are printable'
   endif
 endfunction
于 2013-06-16T13:04:06.300 に答える