我想學習Vimscript從LearnVimscriptTHW
和我碰到使用:execute and :normal
。爲什麼:執行沒有按預期在Vim中工作:學習VimscriptTheHardWay
: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
。那麼,爲什麼它不會發生在我的情況。
好它的工作,但我在幻想'execute'將處理一切,包括'逃脫SP。 chars'。那麼,是否有任何Vim函數可以包裝我的上述命令,以便它可以處理需要自動轉義的字符。像'exe'norm!escapefunc(iHello \ World)' –
RanRag
那麼,當使用'norm'時,你將不得不逃離特殊字符,否則vim不知道你是否想要鍵入''或執行' \ r'。超出'norm'這個自動生效 –
Conner
是的,使用'escape(「iHello \ World」)'或養成使用文字符號的習慣 –
romainl