4

いくつかの非 ASCII 文字を選択的に検索して置換したいドキュメントがいくつかあります (つまり、 で置換ÀÀます)。_vimrc に関数を作成して、任意のドキュメントに対して呼び出すことができるようにしましたが、「パターンが見つかりません」というエラーが表示されます。しかし、ターゲット ドキュメントでの単純な検索と置換は問題なく機能します。期待どおりに文字を検索して置換します。

この関数を通常の検索と置換のように機能させるにはどうすればよいですか?

(私は Windows で gvim を使用しており、すべてのドキュメントは utf-8 でエンコードされた unix ファイルタイプです。)

これが _vimrc の関数です

function! Hc()
    execute '%s/À/\À/g'
endfunction

:call Hc()ターゲットドキュメントにいると、次のエラーが表示されます。

Error detected while processing function Hc:
line   1:
E486: Pattern not found: À

しかし、ターゲットドキュメントでこれを正常に実行できるようです:

:%s/À/\À/g

提案、修正、または回避策はありますか?

4

1 に答える 1

1

これは、 のエンコード エラーのよう~/.vimrcです。ASCII 以外の文字を使用する場合は、必ずファイルのエンコーディングを指定してください。

:scriptencoding utf-8

ファイルの先頭で、次の行の後にのみカスタマイズを定義します。

:set encoding=utf-8

別の回避策

\%d\%x、または\%uアトムのいずれかを使用して、エンコードの問題を回避することもできます。

:execute '%s/\%d192/\À/g'    " À is decimal 192 in UTF-8.
于 2013-11-11T13:24:16.953 に答える