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

Dar*_*kar 2 vim

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

^[[32m MyStringBody ^[[0m
Run Code Online (Sandbox Code Playgroud)

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

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

substitute(my_variable, pattern, '', 'g')
Run Code Online (Sandbox Code Playgroud)

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

Ing*_*kat 9

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

substitute(my_variable, '\e\[[0-9;]\+[mK]', '', 'g')
Run Code Online (Sandbox Code Playgroud)

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