在:窗口之后,如何将光标移回原位?

时间:2012-04-02 21:22:21

标签: vim

似乎:windo将光标留在底部窗口。

在运行:windo之前,如何让它返回到我所在的窗口和光标位置?

我认为mZ,然后`Z会起作用。但它只是将该文件带入底部窗口,而不是让我回到原来的位置。

在Win XP上运行7.3.462。

由于

2 个答案:

答案 0 :(得分:3)

您可以保存缓冲区和视图:

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

答案 1 :(得分:3)

这个伟大的建议促使我做了两次mksessions,并将它们分开。

如果我在:windo

之前执行此操作
let saved_winnr = winnr()

之后:

exec saved_winnr . 'wincmd w'

它让我得到了我需要的东西。