2014-11-25 253 views
0

我正在处理我的插件,它与一个自定义缓冲区一起工作,其中包含一些与问题无关的信息。我有这样的情况下,对事件BufEntervim保存和恢复windows历史

  1. 保存当前窗口
  2. 保存eventignore值
  3. 设置eventignore =“全部”
  4. 删除自定义缓冲区和窗口
  5. 创建自定义缓存和窗口
  6. 还原eventignore
  7. 还原当前窗口

这里的问题是,这个操作序列修改了先前访问过的窗口的历史,我不'恢复它。其他一些插件使用此历史记录(例如,winnr('#')的结果)。由于他们产生“错误”(意外的用户)行为。如何在不将新创建的窗口从我的自定义缓冲区中推送到访问窗口堆栈的情况下执行上述操作?

+2

我不知道“窗口历史”功能,但您可能正在寻找':help:keepalt'和':help:keepjumps'。另请参阅':help special-buffers'。 – romainl 2014-11-25 15:10:56

回答

0

有没有“窗口中的历史”,而是:

  • 保留轮换缓冲区,在前面加上:keepalt到将修改它的任何命令(例如:edit
  • 保留跳转列表 (例如,通过<C-O>),同样预先:keepjumps