Her*_*itz 3 vim special-characters
我正在尝试解决<ctrl-@>在Vim脚本中使用^ @(即)字符的问题.我可以将它们插入到脚本中,但是当脚本运行时,似乎该行在^ @所在的位置被截断.
到目前为止,我的kludgy解决方案是将^ @存储在变量中,然后在我引用文字^ @时引用脚本中的变量.谁能告诉我这里发生了什么?有没有更好的解决这个问题的方法?
这就是为什么我从不在脚本中使用原始特殊字符值的原因之一.虽然^@不起作用<C-@>,但映射中的字符串按预期工作,因此您可以使用其中一个
nnoremap <C-@> {rhs}
nnoremap <Nul> {rhs}
Run Code Online (Sandbox Code Playgroud)
这很奇怪,但你不能<Char-0x0>在这里使用.关于字符串中空字节的一些注释:
setline非常快,因为缓冲区表示为行列表).readfile,getline(start, end))或采取的字符串列表(如writefile,setline,append)治疗\n(NL)为空.它也是缓冲线的内部表示,参见:h NL-used-for-Nul.\n在命令行中插入字符,则会显示Null(但这实际上是换行符).如果要编辑文件\n名中的文件(可以在*nix上),则需要在换行前添加换行符.