2015-09-26 93 views
5

我想找到一個函數,將切換回原始窗口在vim的分割視圖。我知道快捷方式,我也知道這個函數:call cursor。但是是否有一個函數可以讓我切換回前一個分割窗口,這樣我就可以將它粘貼到我的vim函數中了?Vim函數之間切換

+1

另外對於關於Vim和Vi的問題,人們可能會對[專用堆棧交換站點](http://vi.stackexchange.com/)感興趣。 – statox

+1

@statox謝謝我不知道它。書籤! – SUB

+0

爲什麼有' p'的函數? – romainl

回答

6

在Vimscript中,你可以使用:

" Save the window where you are currently 
let l:currentWindow=winnr() 

" Do stuff where you change of window 

" Go back to the original window 
exe l:currentWindow . "wincmd w" 

欲瞭解更多信息的文檔始終是一個極好的讀數:

編輯另一個方式t Ø做到這一點是使用wincmd p

wincmd等同的vim腳本來按Ctrl 瓦特在正常模式。

在正常模式下,當你改變窗口,你可以使用Ctrl鍵瓦特 + p回來到前一個窗口。因此,在vimscript中,您只需使用:

wincmd p 

要回到上一個窗口。

當然,如果你的函數的其餘部分使用2個以上的分割,你將不會回到你的初始窗口,但如果你只有兩個分割,它可以比使用變量保持你的窗口數量更輕。

+0

請問你是如何找到它的? – SUB

+0

是否有類似的函數來檢查是否存在拆分?然後,而不是創建一個新的拆分,我可以切換到另一個窗口,並做的東西... – SUB

+0

@SUB對於「我怎麼找到它」我試圖找到一種方法來使用'windo'而不改變當前窗口從用戶的角度來看,所以我閱讀[':h window'](http://vimdoc.sourceforge.net/htmldoc/windows.html#window)並與Vimscript一起工作......對於第二個問題,您應該閱讀[ ':h winnr()'](http://vimdoc.sourceforge.net/htmldoc/eval.html#winnr())。知道'winnr('$')'給你在當前選項卡中的分割總數,你應該可以使用它。 – statox