2014-06-11 40 views
2

中插入文本到當前緩衝區我很難找到此文檔。如何在我的vim函數中讀取/寫入當前緩衝區中的文本?從函數

更具體地說,如果我的緩衝區包含的話foo bar怎麼會寫一個函數來覆蓋在我的緩衝區包含foo cat結束與cat,這樣的話bar

+1

':help eval'和':help functions'。 – romainl

回答

1

您可以在函數內部使用substitute ex命令。例如,

function! ReplaceBar() 
    :%s/bar/cat/g 
endfunction 

這定義了一個函數。 %字符表示對整個緩衝區進行操作。這搜索bar,將其替換爲cat,並且g標誌將替換行中的每個實例,而不僅僅是第一個。

您可以通過輸入:call ReplaceBar()並按回車來運行此功能。通常它的方便定義,做這種工作的函數,然後定義調用它的命令:

command! -nargs=0 Bar call ReplaceBar() 

該命令可以通過鍵入:Bar運行。

1

要訪問生產線,您可以使用getline()函數。 setline()更新緩衝區中的那些行。同樣,新行通過append()插入。

後者也可以用:put ={variable or expression}完成,並替換爲:substitute。什麼更好取決於具體的用例。前者的低級功能的好處是它們不會像表達式寄存器,上一次使用的搜索模式,搜索歷史等那樣破壞東西。