我试图从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/

10-12 21:24