【问题标题】:Automatically reload .vimrc edited in a vim session in an already opened gVim instance?在已打开的 gVim 实例中自动重新加载在 vim 会话中编辑的 .vimrc?
【发布时间】:2011-05-08 16:20:21
【问题描述】:

我通常在开发时在 gVim 中编辑我的文件。有时我需要在我的 .vimrc 或一些插件(如 snipMate)中进行快速调整。为此,我打开一个终端,打开 vim 并编辑我的 .vimrc 或我的插件。

(我为什么要这样做,在不同的窗口中打开 .vimrc?我不喜欢在 gvim 时将配置文件与项目文件混合在一起,这是一个偏好问题。)

我想在我已经打开的 gVim 上使用这些修改而不需要重新启动它 - 自动。

所以,我的问题是:如何在已打开的 gVim 会话中编辑 .gvimrc/.vimrc 后自动加载它?我使用snipmate插件,是否可以创建一个sn-p并立即使用它?

我已经在使用this solution

augroup myvimrchooks
au!
    autocmd bufwritepost .vimrc source $HOME/.vim/.vimrc
augroup END

它有效,但不适用于我描述的第一个场景。关于我该怎么做的任何想法?谢谢!

【问题讨论】:

    标签: vim


    【解决方案1】:

    这里有一个建议。这可能需要一些调整。 (另外,根据问题的措辞,我假设您的 .vimrc 位于 $HOME/.vim/.vimrc 而不是 $HOME/.vimrc 中。)这个想法是将:source $HOME/.vim/.vimrc 命令发送到每个活动的vim写入 .vimrc 时的服务器。

     function! UpdateVimRC()
         for server in split(serverlist())
             call remote_send(server, '<Esc>:source $HOME/.vim/.vimrc<CR>')
         endfor
     endfunction
     augroup myvimrchooks
     au!
        autocmd bufwritepost .vimrc call UpdateVimRC()
     augroup END
    

    可能只适用于 GVIM,但我不确定。

    【讨论】:

    • 我在终端窗口中打开了我的 vimrc,并打开了 gVim。当我保存 vimrc 缓冲区时,我可以看到在 gVim 窗口中调用了命令 ":source $HOME/.vim/.vimrc",但是我在 vimrc 中所做的修改不可用。你知道可以是什么吗?谢谢!
    • 好吧,现在看来它正在工作。这是一个非常小的技巧。感谢这个提示,这不是微不足道的,我真的很幸运能得到这个答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多