我试图从LearnVimscriptTHW
学习Vimscript,并且遇到了:execute and :normal
的使用。
Example from LVSTHW:
:normal! gg/a<cr>
来自书籍:
问题在于
normal!
无法识别<cr>
这样的“特殊字符”。有很多解决方法,但是最容易使用和阅读的是execute
。现在,当我使用
:execute "normal! gg/a<cr>"
时,它对我不起作用。它不会在我当前的文件中搜索a(char)
,而是仅执行gg
,而不执行任何操作,但是如果使用:execute "normal! gg/a\r"
,它将起作用并成功突出显示我文件中的char a
。我还尝试了以下方法,但没有一个起作用。
:execute "normal! gg/a"<cr>
:execute normal! gg/a<cr>
:execute "normal! gg/a<cr>"<cr>
从书中看来,
execute
在内部转换了<cr> to \r
。所以,为什么我的情况没有发生。 最佳答案
您需要使用反斜杠对<cr>
进行转义:exe "norm! iHello\<cr>World"
关于vim - 为什么是:execute is not working as expected in Vim: LearnVimscriptTheHardWay,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12115494/