web-dev-qa-db-ja.com

目に見えない文字をvimで表示する

ソースをLaTeXでコンパイルすると、次のエラーメッセージが表示されます

Unicode文字\ u8:LaTeXで使用するように設定されていません。

今、これは目に見えないキャラクターによるものだと思います。コマンド :set list疑わしいものは何も表示されません。:set display+=uhex私にはうまくいかないようです。 This 投稿では、私も何か怪しいことが起こっていると思います。

印刷可能な文字ではない私のファイルにあるすべてすべてを表示する方法はvimにありますか? MacVimバージョン7.3(53)を使用しています。

6
Lucas

あなたは出来る:

:setlocal display=uhex

非ASCII文字を16進数で表示します。また、次の方法で highlite 印刷不可能な文字を試してみることもできます。

:set hlsearch
/\(\p\|$\)\@!.

次に、どの文字を「印刷可能」にするかを制御するisprintオプションがあります。

それでも問題が解決しない場合は、:%!xxdそして、問題が発生した場所の周りに「怪しい」何かがあるかどうかをバイトごとに確認します。

4
akira

Vimを使用する代わりに実行することです

tr -d '[a-zA-Z0-9!#@_?+ \t\n\\()"^~`%-]'\'{} < your_latex_file.tex | hexdump -c

これにより、印刷可能な文字の通常の範囲内にない文字に関する情報が得られます。

1
hlovdal

Vimは通常、スペース、タブ、行末のシーケンスまたは文字を除く、ファイル内のすべての文字に対して何かを表示します。これは隠されたキャラクターの問題ではないと思います。これはファイルエンコーディングの問題だと思います。 VimはUTF-8を使用してファイル内の一部の文字をエンコードしており、LaTeXはASCIIまたはLatin1を期待しています。(私はASCIIをほぼ排他的に使用しているので、確かに他のエンコーディングの専門家ではありません。)

Vimが使用しているエンコーディングを確認するには、

:set enc?

それで「utf-8」が返されると思います。 1つの解決策は、代わりにLatin1エンコーディングでファイルを保存することです。これを行うには、実行します

:set fenc=latin1
:w

代わりに、ファイル内の非ASCII文字を検索し、必要に応じて変更する場合は、を使用して0x80〜0xffの範囲の文字を検索します。

/[\x80-\xff]

Vimでのさまざまなエンコーディングの使用について詳しくは、を参照してください。

:help enc
:help fenc
:help 45.3
0
garyjohn