2
我正試圖編寫一個運行搜索和替換範圍的函數。如何在vim函數中進行搜索和替換?
我知道一個人可以做:2,5 s/some pattern/something else/
做這個vim命令,但我不知道這是如何工作在一個函數定義。最初,我試過
function! MyFunc() range
a:firstline,a:lastline s/some pattern/something else/
endfunction
但是當我嘗試加載該函數時,出現錯誤Missing :endfunction
。我也嘗試過打電話,正如我在其他教程和示例中注意到的那樣,有時調用此類情況。我嘗試了call a:firstline,a:lastline s/some pattern/something else/
和a:firstline,a:lastline call s/some pattern/something else/
。用這個,函數加載。但是當我嘗試調用函數:2,4 call MyFunc()
時,我得到一個指向搜索/替換行的Missing parenthesis
錯誤。
任何人都可以幫助我嗎?我還沒有找到任何如何在函數調用中執行搜索和替換的示例。
感謝
缺少':endfunction'是因爲記錄函數體假人解析器認爲'一:firstline'開始':它什麼都吃,直到有一個點線append'命令。如果你在它後面添加這樣的行和另一個'endfunction',你會得到一個預期的錯誤,因爲':append'命令不能跟着':firstline'。 – ZyX
啊......執行......很好。對於它的價值,我終於找到了一個很好的教程 - http://learnvimscriptthehardway.stevelosh.com/chapters/28.html。謝謝你打破了我! – metasoarous
另外值得注意的是,使用單引號是最好的...雖然...我不完全確定這是爲什麼。當我使用雙引號時,'\ n'被解釋爲null,這是記錄的vim行爲,但是當單引號時,被解釋爲換行符。 – toszter