这个问题实际上与我以前的question有关。
我在_vimrc中有以下自定义命令:
command! Test %s/some/\=setreg('C', submatch(0), 'l')/g
我在以下文本中运行此自定义命令Test
:
something
运行命令后,文本变为:
=setreg('C', submatch(0), 'l')thing
但是如果我从Vim的命令行运行相同的命令%s/some/\=setreg('C', submatch(0), 'l')/g
,我得到:
0thing
运行自定义命令Test
时,寄存器C
不会更改。但是当我从命令行运行上述命令时它会被改变,这是预期的。
答案 0 :(得分:1)
我不知道到底是什么骚扰你,就像上一次一样,你的两个命令对我来说都很合适。
通常这与某些非默认设置有关,通常是'cpoptions'
。尝试使用:set cpo&
或vim -N -u NONE
之后。另外,检查反斜杠是否在:command Test
的命令输出中。
最后(如果找不到根本原因),可以使用中间函数解决它:
function! Test()
%s/some/\=setreg('C', submatch(0), 'l')/g
endfunction
command! Test call Test()