「< e9 >」を検索して「é」に置き換えたい。
:%s/< e9 >/é/g
動作しませんが < e9 > は vim 特殊文字のようです
/ ctrl+v xe9
正しい "é" だけを見つけて "< e9 >"を見つけない
< e9 > を使用していて、:ascii と入力すると、次の結果が得られます。
<é> 233、ヘキサ 00e9、オクタル 351
「é」で :ascii と入力すると、次の結果が得られます。
<é> 233、ヘキサ 00e9、オクタル 351
テキストには既に適切なé文字が含まれています (:asciiコマンドで表示されるように)。Vim がそのように表示しないだけです。(別のテキストリスター/エディターで確認できます。)
文字の表示方法は、'isprint'オプションによって制御されます。そのヘルプは次のように述べています。
「encoding」が Unicode の場合、128 ~ 255 の不正なバイト
<xx>は、バイトの 16 進値とともに として表示されます。
したがって、「isprint」値を変更していないと仮定すると、エンコーディングの検出に問題がある可能性があります。小切手
:set encoding? fileencodings? fileencoding?
そして正しい。
AFAIK<e9>は、エンコード変換で何らかの形で破損した単一の文字です。
コマンドモードで、カーソルが上にあるときに<e9>command を与えますyl。これにより、文字がバッファにヤンクされます。次に、コマンドを実行して、ヤンクされた文字/<C-R>-を検索します (これには、検索モードに移動し、 を押しCTRL+Rて押す-必要があります)。検索により<e9>、テキスト内のすべての文字が検出されるはずです。最後に、最後の検索結果を使用して置換を行います。
%s//é/g