我不知道有什么可以像zsh's varedinbash那样开箱即用的。
但是,您可以定义一个函数,该函数允许您使用例如编辑环境变量的值vim:
function vared {
[[ $# -eq 1 ]] || { echo "Usage: vared VARNAME" >&2 ; return 1 ; }
tmpfile=$( command mktemp -t vared.XXXX )
echo "${!1}" > "$tmpfile"
command vim "$tmpfile" && export $1="$(< "$tmpfile" )"
command rm "$tmpfile"
}
Run Code Online (Sandbox Code Playgroud)
将其称为vared PATH.
它有什么作用?它创建一个临时文件,将指定变量的当前值写入文件,并vim以临时文件作为参数打开。现在您需要编辑值、保存并退出vim(您可以退出而不保存文件以跳过保存更改)。之后,文件的内容被设置为新的变量值,整个文件被导出,临时文件被删除。command有必要跳过外壳别名和函数查找,例如在最后删除文件之前会询问的rm别名rm -i。
如果该变量不存在或不是环境变量,则在之后。