【问题标题】:Fresh Vim install, Vim permission errors, Vundle not functional全新 Vim 安装,Vim 权限错误,Vundle 不起作用
【发布时间】:2014-01-12 21:16:54
【问题描述】:

我在 Linux Mint Debian 版上安装了以下 vim 包:

vim
vim-common
vim-tiny
vim-runtime
vim-doc

我之前安装了上述软件包,在安装 Vundle 之后(通过 http://github.com/gmarik/vundle 上的说明可以正常工作),为了避免插件冲突,我决定完全删除并重新安装上述所有 vim 软件包/.vim 文件夹,在为了充分利用 Vundle 作为管理我的插件的一种手段。在我的文件资源管理器中,我可以看到从 git cloning ~/.vim 创建的文件夹以及所有继承的文件夹/文件都属于 root。这会导致 Vundle 出现以下问题:

首先当我执行:BundleSearch查询时:

为了进一步诊断我的问题,我尝试在我的 vimrc 中手动添加一个包:

Bundle 'scrooloose/nerdtree'

在 Vundle GitHub 中使用完全相同的 vimrc 设置,它可以在之前的安装中运行。 现在,当我尝试:BundleInstall 时,我收到以下基于权限的错误:

[140112 13:48:10] 

[140112 13:48:10] Bundle scrooloose/nerdtree

[140112 13:48:10] $ git clone --recursive 'https://github.com/scrooloose/nerdtree.git' '/home/ahqiao/.vim/bundle/nerdtree'

[140112 13:48:10] > fatal: could not create work tree dir '/home/ahqiao/.vim/bundle/nerdtree'.: Permission denied\00

[140112 13:48:11] 

[140112 13:48:11] Helptags:

[140112 13:48:11] :helptags /home/ahqiao/.vim/bundle/vundle/doc/

[140112 13:48:11] > Error running :helptags /home/ahqiao/.vim/bundle/vundle/doc/

[140112 13:48:11] Helptags: 1 bundles processed

此外,我的 vimrc 还包含标准的两行插件:

filetype plugin on

set nocp

过去,我也遇到过:helptags 因权限问题而无法访问~/.vim/doc 的问题,因此我不得不手动将帮助文件复制到非根文件夹中,并使用@987654333 指向该文件夹@。

我该如何克服这些根本问题? Vundle 对我管理编码和跟踪所需的插件数量非常重要。

【问题讨论】:

  • 你是如何克隆vundle的,你把它放在哪里了?实际上,您是如何创建~/.vim 目录的?你能告诉我们它的权限吗?
  • git clone github.com/gmarik/vundle.git ~/.vim/bundle/vundle 如前所述,克隆在以前的安装中工作。出于某种原因,VIM 对我的 /.vim 目录的权限不满意
  • 如果~/.vim 和所有子目录都属于root,你为什么不chown 给自己呢? HOME 中似乎应该是这样,但我不清楚它最初是如何做到的。你是说当你克隆 Vundle 时发生了这种情况?
  • 在我第一次卸载 vim 后,我删除了整个 /.vim 目录,当我重新安装包时 /.vim 没有创建(我不确定 VIM 是否会自动执行此操作?)因此该目录是由 git clone 命令(我使用普通权限终端运行的)创建的。另请注意,我的重新安装过程是在突触中完成的,并选中了“完全删除”选项
  • 一般来说,HOME 目录中的东西应该属于你的USER。在安装 Vundle 之前,您可能已经运行了 sudo git clone ...,或者使用创建目录的 sudo 进行了其他操作,但我认为 Vim 不会自动执行此操作。

标签: vim vim-plugin bundle-install vundle


【解决方案1】:

我不清楚 ~/.vim 的所有者是如何设置为 root 的,但如果是这种情况,Vundle 肯定会在更新软件包时遇到问题。

如果我理解正确,因为您现在已经按照自己的意愿安装了 Vim,我建议重新进行自定义过程。


移动~/.vim(供参考)并创建将安装Vundle的bundle目录:

$ sudo mv ~/.vim ~/OLDvim
$ mkdir -p ~/.vim/bundle

这现在应该是您的用户拥有的空dir

重新安装 Vundle

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

确保您的~/.vimrc 中有required lines

  • 打开 vim 和
  • 运行:BundleInstall

一旦你得到它的工作并且你对一切都感到满意,你可以rm -rf ~/OLDvim

【讨论】:

  • 用 chown 递归(如上面的评论)似乎可以解决我的问题。谢谢bnjmn,如果可以的话,我会支持你。我是新来的,非常感谢您的帮助
  • 这对我有用。赞成。感谢您提供此解决方案!
  • 这种方法对我有用,但vundle install instructions 现在略有不同。
【解决方案2】:

将 .vim 文件的所有权更改为我的用户名而不是 root 对我有用(对所有文件进行递归):

chown -R <username>:<username> .vim

这里是more info about chown

注意:似乎重新安装的答案也可以工作(尽管最终没有尝试),但使用 chown 方法,您不必执行重新安装步骤。

【讨论】:

    【解决方案3】:

    现在回答已经很晚了,但是这个问题仍然存在。我遇到了这个问题,这就是我解决它的方法。 先运行(安装插件时报错)

        :helptags /home/ahqiao/.vim/bundle/vundle/doc/
    

    它将显示确切的错误。在我的案例中,它是在两个 ale doc 文件 ale-cpp.txt 和 ale-cpp.txt 中发现的重复条目。

        Error: Duplicate Entries Found g:ale_cpp_flawfinder_executable
        Error: Duplicate Entries Found g:ale_c_flawfinder_executable
    

    只需删除这些条目或注释掉并安装 agin。现在它工作正常。

    【讨论】:

      【解决方案4】:

      也很晚才回答,但就我而言,换行:

      call vundle#begin('$USERPROFILE/.vim/bundle') 
      

      call vundle#begin('$HOME/.vim/bundle') 
      

      纠正了问题。显然,$USERPROFILE 没有定义,因此被评估为 root (/)。

      这可能对某人有所帮助....

      【讨论】:

        【解决方案5】:

        卸载/安装有问题的插件 (vim-fugitive) 为我修复了错误。

        我收到了这个错误:

        > Error running :helptags /Users/gigo6000/.vim/bundle/vim-fugitive/doc 
        

        所以我删除了这一行:

        Plugin 'tpope/vim-fugitive'
        

        运行

        :so %
        :PluginClean
        :PluginInstall
        

        这样就成功了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-08
          相关资源
          最近更新 更多