【问题标题】:directory not available when i turned into root user当我变成root用户时目录不可用
【发布时间】:2018-11-15 01:51:08
【问题描述】:

我在我的内部克隆了scrooloose/nerdtree 插件

./vim/bundle 目录 使用命令

sudo git clone git@github.com:scrooloose/nerdtree.git ~/.vim/bundle/nerdtree

并设置我的vimrc 文件,一切都很好,但是当我使用命令sudo su 变成root 用户时 nerdtree 目录现在不可用。

我应该怎么做才能使它可用?问题不仅在于 nerdtree,还在于我克隆的每个插件。

编辑

我找到了一种解决方案,但没有找到我需要的解决方案。 我克隆了两次,一次使用

-sudo git clone git@github.com:scrooloose/nerdtree.git ~/.vim/bundle/nerdtree

还有一次使用

-sudo su

-git clone git@github.com:scrooloose/nerdtree.git ~/.vim/bundle/nerdtree

这解决了我的问题。

【问题讨论】:

  • 输入sudo su可以执行ls ,会发现没有.vimrc.vim文件夹
  • 我的 .vim 文件夹存在,我可以进入它....我的 vimrc 文件也在 /etc/vim 中,它也存在。
  • 但他们需要在~主目录中没有?
  • 我的 vimrc 文件总是在 /etc/vim

标签: git vim terminal


【解决方案1】:

注意将 vim 包克隆到的位置:~/.vim/bundle/。看起来您正试图通过编辑 /etc/vim/vimrc 来强制所有用户使用相同的 vim。在这种情况下,您的捆绑软件也需要位于该目录中。即,尝试克隆到/etc/vim/bundle/nerdtree 而不是~/.vim/bundle/nerdtree。您遵循的说明假设您只是为您的用户而不是系统上的每个用户更改 vim。

【讨论】:

  • 甚至插件管理器(我正在使用 Vundle)正在克隆 ~/.vim/bundle/ 中的 repo
  • 因为你在运行sudo git clone git@github.com:scrooloose/nerdtree.git ~/.vim/bundle/nerdtree 时告诉它。您正在指定它应该克隆到的位置。
【解决方案2】:

任何命令sudo command ~/path 都适用于您用户的$HOME,而不是root。示例:

$ echo ~
/home/phd
$ sudo echo ~
[sudo] password for phd: 
/home/phd

这是因为~在运行sudo之前由用户的shell解释。

要克服使用绝对路径:sudo command /root/path:

sudo git clone git@github.com:scrooloose/nerdtree.git /root/.vim/bundle/nerdtree

【讨论】:

  • 使用这个目录只对root用户可用。
  • 我使用sudo su成为root。
  • 那么使用/root目录就可以了。
  • 不使用这个目录只有当我是root时才可用。
【解决方案3】:

root和任何用户的.vim目录都不一样...

根位于

/root/.vim

对于像“ramesh”这样的用户,位于

/home/ramesh/.vim

所以克隆到一个不会反映到另一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 2020-12-30
    • 2016-12-25
    • 1970-01-01
    • 2020-05-17
    相关资源
    最近更新 更多