新安装 Vim,Vim 权限错误,Vundle 无法正常工作

6
我在Linux Mint Debian Edition上安装了以下vim软件包:
vim
vim-common
vim-tiny
vim-runtime
vim-doc

我之前已经安装了上述的软件包,后来安装了Vundle(根据http://github.com/gmarik/vundle的说明进行了操作),为避免插件冲突,决定彻底删除并重新安装所有vim软件包/.vim文件夹,以便充分利用Vundle来管理我的插件。在我的文件浏览器中,我可以看到从git克隆~/.vim创建的文件夹及其所有继承的文件夹/文件都属于root用户。这导致了以下与Vundle有关的问题:
首先,当我执行:BundleSearch查询时:

http://imgur.com/ZB2RnR7

为了进一步诊断我的问题,我尝试手动将一个bundle添加到我的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的权限问题,因此我不得不手动将帮助文件复制到非root文件夹中,并使用: helptags指向它。如何解决这些根本问题?对我来说,Vundle真的很重要,可以帮助我管理所需的插件数量并保持跟踪。

你是如何克隆 vundle 的,它放在哪里?实际上,你是如何创建 ~/.vim 目录的?你能展示一下它的权限吗? - bnjmn
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle正如之前所述,克隆在以前的安装中起作用。由于某种原因,VIM对我的/.vim目录的权限感到不满意。 - Rice
如果~/.vim和所有子目录都属于root用户,为什么不使用chown命令将其改为您自己的用户呢?在HOME目录下,这似乎是应该的,但我不确定它最初是如何变成root用户的。您是说当您克隆Vundle时就发生了这种情况吗? - bnjmn
在我第一次卸载Vim后,我删除了整个/.vim目录。当我重新安装软件包时,/.vim目录没有被创建(我不确定VIM是否会自动创建此目录),因此该目录是由git clone命令创建的(我在普通权限终端上运行了此命令)。还要注意,我的重新安装过程是在Synaptic中进行的,并勾选了“完全移除”选项。 - Rice
通常情况下,您HOME目录中的文件应该属于您的USER。在安装Vundle时,您可能已经使用了sudo git clone ...或其他带有sudo的命令来创建该目录,但我不认为Vim会自动执行这些操作。 - bnjmn
5个回答

14

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

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


移动~/.vim(作为参考),并创建bundle目录,用于安装Vundle:

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

现在这个dir应该是你的用户所有并且为空的。

重新安装Vundle。

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

请确保在您的~/.vimrc中包含所需行,

  • 打开vim并
  • 运行:BundleInstall

一旦您成功运行,并对所有内容感到满意,可以rm -rf ~/OLDvim.


通过使用chown进行递归(如上面的评论中所述),似乎解决了我的问题。谢谢bnjmn,如果可以的话我会给你点赞的。我在这里还很新,非常感谢您的帮助。 - Rice
这对我起作用了。点赞!感谢您提供这个解决方案! - Saurabh Hirani
这种方法对我管用,但现在的vundle安装说明略有不同。 - ncherro

5
将.vim文件的所有权从root更改为我的用户名对我有用(递归地对所有文件都有效):
chown -R <username>:<username> .vim

这里有关于 chown 的更多信息

注意:似乎重新安装的方法也可以解决问题(虽然没有尝试),但使用 chown 方法可以避免重新安装的步骤。


1
很晚才回答,但这个问题仍然存在。我遇到了这个问题,以下是我的解决方法。首先运行(在安装插件时出错)。
    :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

只需删除这些条目或将其注释掉,然后重新安装。现在它可以正常工作。


0

回答也很晚了,但在我的情况下,更改以下行:

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

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

问题已经修正。显然,$USERPROFILE未定义,因此被评估为根目录(/)。

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


0

卸载/安装有问题的插件(vim-fugitive)对我来说解决了这个错误。

我遇到了这个错误:

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

所以我删除了这行:

Plugin 'tpope/vim-fugitive'

运行

:so %
:PluginClean
:PluginInstall

这样就完成了工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接