Vimの:s / / /代替文字列でUnicode 16進エスケープを使用する方法は?

Vimの:s / / /代替文字列でUnicode 16進エスケープを使用する方法は?

代替コマンドの代替文字列で16進Unicodeエスケープを使用したい(たとえば、U + 20AC文字を使用)。

:s#something#\x{20AC}#g

上記の例は、代替文字列にPerl構文を使用しているため機能しませんが、Vimで動作したいと思っており、16進値(2または4)によって決まる他の多くの可能なUnicode文字でも機能したいと思います。数字以上)これはスクリプトによって生成された一連の代替ステートメントであるため、代替ステートメント自体は使いやすく、ASCIIにのみ設定したいと思います。正しい構文がなければならないと思いますが、見つかりません。 \ % u20ACは検索モードでは有効ですが、代替文字列では無効です。これは対話的には行われないため、CTRL-V + 4つの16進法は機能しません。

ベストアンサー1

:s#something#\=nr2char(0x20AC)#g

:help sub-replace-expressionVimでと参照してください。:help nr2char()

または、20AC実際に定数の場合は、次のように入力することができ: s # something # <Ctrl-V> u 20AC # g <Enter>ます。

:s#something#€#g

:help i_ctrl-vVimに何があるのか​​見てください。

おすすめ記事