2015-09-26 91 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