2012-04-02 54 views
2

似乎:windo将我的光标留在底部窗口中。After a:windo,如何将光标移回原来的位置?

我怎样才能得到它返回到窗口和光标位置我在之前我跑:windo

我以为mZ,然后`Z会工作。但它只是将该文件放到底部窗口中,而不是让我回到我所在的位置。

在Win XP上运行7.3.462。

感谢

回答

1

sehe的伟大的建议促使我做两个mksessions,和它们版本比较。

如果我以前:windo

let saved_winnr = winnr() 

做到这一点,这之后:

exec saved_winnr . 'wincmd w' 

它让我我需要什么。

+0

这也回答了这个问题:http://vim.wikia.com/wiki/Windo_and_restore_current_window – shaggyaxe 2015-02-13 19:35:14

2

你可以保存缓冲和看法:

let saved_bufnr = bufnr("%") 
let saved_view = winsaveview() 

,并用它来恢复的确切位置(后argdobufowindotabdoglobal或其任意组合)

exec 'buffer ' . saved_bufnr 
call winrestview(saved_view) 

备注这也有效地使用了标准:mkview,:mksession功能的管道。如果你真的想要恢复所有窗口/选项卡,通过各种手段只使用

:mksession! /tmp/tmpsession.vim 
:# do the work 
:source /tmp/tmpsession.vim 
+0

谢谢你。但是,:buffer命令无法在最后一个窗口中上传该文件。就像'Z在做什么。 但是,您的msesession建议给了我一个想法。我正在测试它... – shaggyaxe 2012-04-03 13:04:22

+1

@shaggyaxe如果你设置了'switchbuf = useopen,usetab',你应该得到已经显示该缓冲区的窗口 – sehe 2012-04-03 14:46:16