我在vimscript中有一个字符串变量,其中包含一些用于突出显示的ANSI转义字符。字符串看起来像,
^[[32m MyStringBody ^[[0m
我把字面上的转义码放在vim显示它,它是转义序列 - Ctrl-v - [。
我想用substitute
命令替换所有这些转义字符的出现。
substitute(my_variable, pattern, '', 'g')
有人可以使用正则表达式模式来帮助我删除这些转义字符。感谢。
答案 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')