在sudo中使用alias

使用bash时发现,在sudo时,所有的配置都失效了,比如alias的配置。

我习惯使用vi来打开vim,所以有如下配置:

alias vi='vim'

在直接使用vi时,bash很规矩地按照alias来调用vim,从下看出:

$ which vi
alias vi='vim'
/usr/bin/vim

但当使用sudo vi时,就出现了警告:

Error detected while processing /usr/home/amoblin/.vimrc:
line 31:
E518: Unknown option: autochdir
Press ENTER or type command to continue

这里vi调用的哪个呢?

$ sudo which vi
/bin/vi

是原始的vi,不是vim,难怪对autochdir不支持。

怎么解决呢?很简单,再增加一个alias:

alias sudo='sudo '

不要小看这个空格,正是它让你在sudo时能够使用之前的alias配置。

传说还有另外一个很变态的alias,欲知详情,请移步这里:

http://www.shellperson.net/using-sudo-with-an-alias/

tagged by
comments powered by Disqus