2010-12-15 151 views
5

我不時要做的事情是將vim命令的輸出粘貼到緩衝區中。例如。當我編輯我的vimrc,這將會是很高興能夠與statusline撥弄,然後能夠只是做一些類似於有沒有辦法將vim命令的輸出粘貼到緩衝區中?

"=set statusline?<Enter>p 

問題是,收益率

E121: Undefined variable: set 
E15: Invalid expression: set statusline? 
Press ENTER or type command to continue 

我認爲這是可能的,而且我對內置函數以及如何使用它們還不夠了解(我在這裏和那裏看到expand,但在任何情況下都沒有成功使用它),儘管我(認爲​​我)對正常模式有非常深刻的理解。

請注意,這個具體的例子是有點人爲的,但我現在想不到一個更好的例子。對於上面的具體用例,我可以只用":p來獲得我在實驗過程中使用的整個set命令,然後進行編輯以適應,但相當有規律地遇到其他情況,我想讓vim告訴我一些事情,然後我想粘貼輸出到某個地方,這樣我可以在繼續工作的同時繼續查看它。

回答

4

你可以粘貼選項設置。

+3

'redir'輸出到寄存器,然後粘貼寄存器將工作。或者你在說別的什麼? – 2010-12-15 02:40:03

+0

@Herbert Sitz我認爲你對這個問題有最好的答案。我不知道':redir'。 – 2010-12-15 02:48:25

+0

其實,我喜歡你給的直接粘貼選項,這是我沒有用過的東西,並且會開始使用我自己。 。 。謝謝。 – 2010-12-15 05:53:44

4

設置的值存儲在前綴爲&符號的變量中。所以statusline設置的值可以通過參考&statusline來訪問。要插入到文檔中,一種方法是使用「表達式」寄存器<ctrl-R>=。要使用它,請進入插入模式,然後按<ctrl-R>,然後按=。您將在命令行中看到等號,您可以在其中輸入:&statusline,然後按enter。這會將值插入緩衝區。然而

"=&statusline<Enter>p 

我不知道任何方式把緩衝區中的任意命令的輸出,:

+0

謝謝 - 當我這樣做時,我通常不處於插入模式,但很高興知道設置是用&符號引用的。 – 2010-12-16 02:13:54

相關問題