【问题标题】:Fugitive commands unavailable after opening .vimrc to edit打开 .vimrc 进行编辑后,逃逸命令不可用
【发布时间】:2012-04-04 10:24:03
【问题描述】:

我的系统是带有 MacVim 7.3 (GUI) 和 Vim 7.2(在 iTerm 上)的 OS X 10.6。

在 MacVim 上,Fugitive 根本不起作用。

在 Vim 上,它有点不同。我已经设置了一个映射来打开.vimrc文件,如下:

nmap <silent> <leader>ev :e $MYVIMRC<CR>

刚打开 vim 后,所有 Fugitive 命令都可用,但使用上述映射打开 .vimrc 文件后,我无法发出任何 Fugitive :G* 命令。如果我正常打开.vimrc 文件(即使用:e ~/.vimrc)一切都很好。

我的整个.vim 目录(.vimrc 在根目录中作为vimrc)可以访问here

我该怎么做才能让它发挥作用?

【问题讨论】:

  • “在 MacVim 上,Fugitive 根本不起作用。”是什么意思?有什么症状?对于另一部分,尝试将映射中的$MYVIMRC 替换为~/.vimrc~/.vim/vimrc,并尝试手动执行:e $MYVIMRC。我怀疑这个问题与您的~/.vimrc~/.vim/vimrc 的符号链接有关。
  • @romainl:抱歉,“在 MacVim 上,Fugitive 根本不起作用。”我的意思是 Fugitive 命令从一开始就无法使用。我什至不需要像“终端 vim”那样发出\ev。尴尬的是我安装了其他七个插件,它们工作得很好,只有 Fugitive 是这样的。我将调查符号链接。谢谢

标签: vim macvim vim-fugitive


【解决方案1】:

Fugitive 的功能仅在相关文件是 Git 存储库的一部分时可用。很可能您的 .vimrc 文件不受 Git 版本控制,或者如果是,则您已通过符号链接路径对其进行了编辑,而 Fugitive 在撰写本文时并未处理。

如果您的.vimrc 文件确实受版本控制,您可以通过在文件的规范 路径上调用:edit 来解决此问题,而不是通过任何符号链接,这将提示逃犯正确找到.git 子目录和其中的元数据。

【讨论】:

  • 确实!我以为 Fugitive 是基于:pwd,但它是基于当前文件的。谢谢!
【解决方案2】:

如果您的 $MYVIMRC 是符号链接,请尝试使用此映射。

noremap <leader>ev :execute 'e ' . resolve(expand($MYVIMRC))<CR>

它将打开目标 vimrc 文件,该文件位于 git repo 中,因此可以被 Fugitive 拾取。

【讨论】:

    猜你喜欢
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    相关资源
    最近更新 更多