0
這個問題其實和我以前的question有關。爲什麼setreg在預期的Vim的自定義命令中不起作用?
我在_vimrc以下自定義命令:
command! Test %s/some/\=setreg('C', submatch(0), 'l')/g
我在下面的文字中使用該自定義命令Test
:
something
運行此命令後的文字將變爲:
=setreg('C', submatch(0), 'l')thing
但是,如果我運行相同的命令%s/some/\=setreg('C', submatch(0), 'l')/g
從Vim的命令行,我得到:
0thing
當運行自定義命令Test
寄存器C
沒有改變。但是,當我從命令行運行上述命令時,它會發生變化,這與預期一致。
我猜他錯過了'的反斜槓:command'以及... – Kent
非常感謝。確實增加了一個額外的反斜槓。 '命令!測試%s/some/\\ = setreg('C',submatch(0),'l')/ g'。所以,我需要在自定義命令中轉義反斜槓,但不能在函數定義中使用。 –
那麼,通常不會(除非你執行整個':command'定義並使用雙引號)。我不知道爲什麼你必須這樣做,但只要它有效...... –