linux - sudo vim “找不到命令”的问题
迷茫
迷茫 2017-04-17 16:06:42
0
3
2132

系统:debian8

shell:zsh

为了添加对python的支持,重新编译了vim7.4,安装到了/usr/local/vim74,而且在.zshrc里面设置了alias vim='/usr/local/vim74/bin/vim',在zsh里面用vim,一切正常。

但是用sudo vim的时候提示:sudo:vim:找不到命令,必须sudo /usr/local/vim74/bin/vim 这样才行,请问这是什么原因?

另外问两个相关的问题:
1、是否我用zsh就修改.zshrc就可以?不用管.bashrc?
2、alias都是在哪里定义的?.zshrc和.bashrc我都看了,只有一部分

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(3)
PHPzhong

當你執行sudo vim 時,是在root用戶的$PATH裡查找vim
然而全域目錄/usr/bin:/usr/sbin 裡並沒有vim
正確的做法是sudo vim 时,是在root用户的$PATH里查找vim
然而全局目录 /usr/bin:/usr/sbin里 并没有vim
正确的做法是

EDITOR=/usr/local/vim74/bin/vim
export EDITOR

然后使用 sudoedit filename 进行编辑

PS:强烈反对编译时 ./configure --prefix=/usr/local/vim74 rrreee

然後使用 sudoedit filename 進行編輯🎜 🎜PS:強烈反對編譯時 ./configure --prefix=/usr/local/vim74 這種做法🎜
黄舟

你設定的.zshrc~/.zshrc吧。這個設定只對目前使用者有效。
當 Zsh 啟動時,它會依照順序依序讀取下面的設定檔:

  1. /etc/zsh/zshenv

    该文件应该包含用来设置PATH 环境变量[broken link: invalid section]以及其他一些环境变量的命令;不应该包含那些可以产生输出结果或者假设终端已经附着到 tty 上的命令。
  2. ~/.zshenv

    该文件和 /etc/zsh/zshenv 相似,但是它是针对每个用户而言的。一般来说是用来设置一些有用的环境变量。
  3. /etc/zsh/zprofile

    这是一个全局的配置文件,在用户登录的时候加载。一般是用来在登录的时候执行一些命令。请注意,在 Arch Linux 里该文件默认包含一行配置,用来加载 /etc/profile 文件,详见 #全局配置文件。
  4. /etc/profile

    在登录时,该文件应该被所有和伯克利(Bourne)终端相兼容的终端加载:它在登录的的时候会加载应用相关的配置(/etc/profile.d/*.sh)。注意在 Arch Linux 里,Zsh 会默认加载该文件。
  5. ~/.zprofile

    该文件一般用来在登录的时候自动执行一些用户脚本。
  6. /etc/zsh/zshrc

    当 Zsh 被作为交互式终端的时候,会加载这样一个全局配置文件。
  7. ~/.zshrc

    当 Zsh 被作为交互式终端的时候,会加载这样一个用户配置文件。
  8. /etc/zsh/zlogin

    在登录完毕后加载的一个全局配置文件。
  9. ~/.zlogin

    和 /etc/zsh/zlogin 相似,但是它是针对每个用户而言的。
  10. /etc/zsh/zlogout

    在注销的时候被加载的一个全局配置文件。
  11. ~/.zlogout

    和 /etc/zsh/zlogout 相似,但是它是针对每个用户而言的.

    來自Zsh_(簡體中文)

迷茫

你的問題更多的是想知道如何配置alias,對此進行回答。如何設定alias:
(1)在.bashrc中新增一行:alias startvim='sudo /usr/local/vim74/bin/vim'
(2)在終端中執行source .bashrc 使設定生效
兩步之後,你再執行startvim即可

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!