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