中插入文本到當前緩衝區我很難找到此文檔。如何在我的vim函數中讀取/寫入當前緩衝區中的文本?從函數
更具體地說,如果我的緩衝區包含的話foo bar
怎麼會寫一個函數來覆蓋在我的緩衝區包含foo cat
結束與cat
,這樣的話bar
?
中插入文本到當前緩衝區我很難找到此文檔。如何在我的vim函數中讀取/寫入當前緩衝區中的文本?從函數
更具體地說,如果我的緩衝區包含的話foo bar
怎麼會寫一個函數來覆蓋在我的緩衝區包含foo cat
結束與cat
,這樣的話bar
?
您可以在函數內部使用substitute
ex命令。例如,
function! ReplaceBar()
:%s/bar/cat/g
endfunction
這定義了一個函數。 %
字符表示對整個緩衝區進行操作。這搜索bar
,將其替換爲cat
,並且g
標誌將替換行中的每個實例,而不僅僅是第一個。
您可以通過輸入:call ReplaceBar()
並按回車來運行此功能。通常它的方便定義,做這種工作的函數,然後定義調用它的命令:
command! -nargs=0 Bar call ReplaceBar()
該命令可以通過鍵入:Bar
運行。
要訪問生產線,您可以使用getline()
函數。 setline()
更新緩衝區中的那些行。同樣,新行通過append()
插入。
後者也可以用:put ={variable or expression}
完成,並替換爲:substitute
。什麼更好取決於具體的用例。前者的低級功能的好處是它們不會像表達式寄存器,上一次使用的搜索模式,搜索歷史等那樣破壞東西。
':help eval'和':help functions'。 – romainl