2

強調表示の目的で使用される ANSI エスケープ文字を含む文字列変数が vimscript にあります。文字列は次のようになります。

^[[32m MyStringBody ^[[0m

vimが表示するとおりにエスケープコードを文字通り入れました。これはエスケープシーケンスです-Ctrl-v-[。

substituteそのようなエスケープ文字のすべての出現をコマンドに置き換えたいです。

substitute(my_variable, pattern, '', 'g')

これらのエスケープ文字を削除する正規表現パターンを教えてください。ありがとう。

4

2 に答える 2

11

特別なアトムは=\eにマッチします:<Esc>^[

substitute(my_variable, '\e\[[0-9;]\+[mK]', '', 'g')

\%d27(<Esc>は 10 進数 27) または\%x1b(16 進数)も使用できます。パターンは (ほとんどの) ANSI エスケープ シーケンスと一致する必要があります。

于 2013-08-07T12:08:56.670 に答える
3

次のコマンドで文字<C-v><Esc>を入力するだけです。^[

substitute(my_variable, '^[[\d+m', '', 'g')
于 2013-08-07T12:06:49.490 に答える