You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中启动Vim时自动为sudo添加-E参数

解决sudo启动Vim自动添加-E参数的问题

你之前写的vim()函数逻辑错误——当输入sudo vim时,shell会优先解析sudo命令,根本不会触发你的vim()函数,所以里面的判断条件永远不会生效。

下面提供两种可行方案:

方案一:通过sudo函数实现自动拦截

在.bashrc中添加以下函数,它会在你执行sudo vim时自动追加-E参数,其他sudo命令不受影响:

sudo() {
    if [[ "$1" == "vim" ]]; then
        command sudo -E vim "${@:2}"
    else
        command sudo "$@"
    fi
}
  • 原理:拦截sudo命令调用,判断第一个参数是否为vim,是则执行带-E的sudo vim,否则正常执行原sudo命令
  • 生效方法:修改后执行source ~/.bashrc,或者重新打开终端

方案二:直接设置别名(更简单)

如果只需要快速调用带-E的sudo vim,直接在.bashrc里加别名:

alias svim='sudo -E vim'

之后输入svim就等价于执行sudo -E vim,满足需求的同时更直观。

内容的提问来源于stack exchange,提问作者Letus252

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 22:52:04