从vimscript中的字符串替换ANSI颜色代码

时间:2013-08-07 11:56:19

标签: vim

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

^[[32m MyStringBody ^[[0m

我把字面上的转义码放在vim显示它,它是转义序列 - Ctrl-v - [。

我想用substitute命令替换所有这些转义字符的出现。

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

有人可以使用正则表达式模式来帮助我删除这些转义字符。感谢。

2 个答案:

答案 0 :(得分:9)

特殊原子\e<Esc> = ^[匹配:

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

您还可以使用\%d27<Esc>是十进制27)或\%x1b(十六进制)。该模式应匹配(大多数)ANSI转义序列。

答案 1 :(得分:3)

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

substitute(my_variable, '^[[\d+m', '', 'g')