是否可以使用ASCII NUL作为搜索/替换分隔符?

时间:2013-09-09 08:45:58

标签: vim replace delimiter

换句话说,正如您可以同时使用:s/x/y/g:s|x|y|g以及:s#x#y#g一样,您可以使用:v\0x\0y\0norm 0吗?

2 个答案:

答案 0 :(得分:2)

不,你不能,因为ASCII NUL在Vim的C代码库中作为分隔符,所以它会截断输入的字符串。

答案 1 :(得分:0)

:help E146下的文字描述了可能的分隔符:

  

而不是' /'包围模式和替换字符串,你   可以使用任何其他单字节字符,但不能使用字母数字字符,   ' \','"'或' |'。

请注意,<Nul>(显示为^@ = CTRL- @)在内部表示为换行符(ASCII 10)(请参阅:help <nul>),但您可以通过 Ctrl + V 0 0 0 或 Ctrl + V Ctrl + @

因此,虽然您可以使用<nul>分隔符字符键入替换,但Vim会在内部使用换行符^J = <NL>字符来表示。