2012-04-02 73 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