2

我在 vimscript 中有一个字符串变量,其中包含一些用于突出显示的 ANSI 转义字符。字符串看起来像,

^[[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>是十进制 27) 或\%x1b(十六进制)。模式应该匹配(大多数)ANSI 转义序列。

于 2013-08-07T12:08:56.670 回答
3

只需用于在以下命令<C-v><Esc>中输入字符:^[

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