【问题标题】:Automatically restore last session in Gvim自动恢复 Gvim 中的最后一个会话
【发布时间】:2011-10-22 09:31:08
【问题描述】:

我安装了 sessionman,它工作正常。但是我在两次重新加载 X 会话(注销/登录,重新启动等)时丢失了会话,因为当 KDE 恢复 Gvim 时,它不会自动加载会话,而是只加载最后一个文件,然后在下次重新加载时将其保存在最后一个会话名称下.如果我没有运行 SessionOpen,那么在下次重新加载时我的最后一个会话将丢失。

我已经配置了会话自动保存。如果 Gvim 也可以自动加载最后一个会话,那就太好了。但是,即使手动,此功能也不适用于我。当我重新启动 Gvim 时,SessionShowLast 打印“Last session is undefined, current session is ""”。

sessionman 文档说:“如果 'viminfo' 选项包含 '!',则打开的会话的名称保存在 g:LAST_SESSION 变量中,该变量保存在 viminfo 文件中”。但是我没有找到任何明确的解释什么是“viminfo选项”,它应该包含'!',以及如何设置它。我也不确定如何从 vimrc 执行 SessionOpenLast。

如果我尝试解决问题的方式有误,请纠正我。

【问题讨论】:

    标签: session vim


    【解决方案1】:

    viminfo 是一个变量,用于描述应将哪些数据存储在viminfo 文件中。

    有关详细信息,请在 vim 中运行 :help 'viminfo'(注意引号):

        !       When included, save and restore global variables that start
                with an uppercase letter, and don't contain a lowercase
                letter.  Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
                and "_K_L_M" are not.  Nested List and Dict items may not be
                read back correctly, you end up with a string representation
                instead.                                
    

    使用:set viminfo 查看viminfo 设置的当前值。在您的 ~/.vimrc 文件中修改它。

    set viminfo='100,<500,s10,h,!
    

    因为vimrc 是在插件之前加载的,所以将SessionOpenLast 添加到vimrc 将不起作用。为了解决这个问题,创建一个自动命令:

    autocmd VimEnter * SessionOpenLast
    

    【讨论】:

    • ":help 'viminfo'" 命令中的引号是我真正想念的!谢谢))
    • 我添加了“!”到 vimrc 中的默认值 "'100,
    • 我对@9​​87654334@ 插件一无所知,但你有幸在vimrc 末尾添加SessionOpenLast 吗?
    • 处理 /home/artem/.vimrc 时检测到错误:第 114 行:E492:不是编辑器命令:SessionOpenLast
    • 不错!我建议将其添加为答案,以便您将其标记为已接受,以便将来其他人可以更轻松地找到它。
    【解决方案2】:
      "My Sessionman Conf
      set viminfo='100,<500,s10,h,!
      let sessionman_save_on_exit = 1
    
      function! ReadSession()
      SessionOpenLast
      endfunction
    
      " if no file args then open the last session
      autocmd VimEnter * if argc() == 0 | call ReadSession() | endif
    

    【讨论】:

    • 能否请您也解释一下,以便其他人容易理解
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多