0

「< e9 >」を検索して「é」に置き換えたい。

:%s/< e9 >/é/g

動作しませんが < e9 > は vim 特殊文字のようです

/ ctrl+v xe9

正しい "é" だけを見つけて "< e9 >"を見つけない

< e9 > を使用していて、:ascii と入力すると、次の結果が得られます。

<é> 233、ヘキサ 00e9、オクタル 351

「é」で :ascii と入力すると、次の結果が得られます。

<é> 233、ヘキサ 00e9、オクタル 351

4

2 に答える 2

4

テキストには既に適切なé文字が含まれています (:asciiコマンドで表示されるように)。Vim がそのように表示しないだけです。(別のテキストリスター/エディターで確認できます。)

文字の表示方法は、'isprint'オプションによって制御されます。そのヘルプは次のように述べています。

「encoding」が Unicode の場合、128 ~ 255 の不正なバイト<xx>は、バイトの 16 進値とともに として表示されます。

したがって、「isprint」値を変更していないと仮定すると、エンコーディングの検出に問題がある可能性があります。小切手

:set encoding? fileencodings? fileencoding?

そして正しい。

于 2013-03-28T07:37:06.227 に答える
0

AFAIK<e9>は、エンコード変換で何らかの形で破損した単一の文字です。

コマンドモードで、カーソルが上にあるときに<e9>command を与えますyl。これにより、文字がバッファにヤンクされます。次に、コマンドを実行して、ヤンクされた文字/<C-R>-を検索します (これには、検索モードに移動し、 を押しCTRL+Rて押す-必要があります)。検索により<e9>、テキスト内のすべての文字が検出されるはずです。最後に、最後の検索結果を使用して置換を行います。

%s//é/g
于 2013-03-28T07:38:05.340 に答える