Não estou ciente de nada que funcione como zsh
vared
in bash
, fora da caixa.
No entanto, você pode definir uma função que permitirá editar o valor de uma variável de ambiente usando, por exemplo, 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"
}
Chame como vared PATH
.
O que isso faz? Ele cria um arquivo temporário, grava o valor atual da variável especificada no arquivo e abre vim
com o arquivo temporário como argumento. Agora você deve editar o valor, salvar e sair de vim
(você pode sair sem salvar o arquivo para pular as alterações de salvamento). Depois, o conteúdo do arquivo é definido como o novo valor da variável, a coisa toda é exportada e o arquivo temporário é removido. command
é necessário para ignorar alias de shell e pesquisas de funções, por exemplo um rm
alias para rm -i
perguntaria antes de excluir o arquivo no final.
Se a variável não existe ou não é uma variável ambiente , será depois.