Executar o nano a partir da função no arquivo de configuração (função no zshrc) não salva as alterações

Executar o nano a partir da função no arquivo de configuração (função no zshrc) não salva as alterações

Estou usando zsh como meu shell e estou tentando conseguir isso:

No meu arquivo .zshrc, quero ter uma função que modifique meu .zshrc, salve-o e recarregue-o.

Até agora tenho funções (no meu arquivo .zshrc):

function zshrd(){
    cp $HOME/config/.zshrc $HOME/
    source $HOME/.zshrc
}

function zshed(){
    message=${1:-Automated message}
    nano $HOME/.zshrc
    git add $HOME/config/
    git commit -m $message
    zshrd
} 

Sempre que chamo zshrd, ele funciona. Mas sempre que ligo para zshed, isso não acontece. Ele abre o arquivo no nano, mas não salva nenhuma alteração feita no arquivo e não confirma nada. Talvez tenha algo a ver com stdin/stdout?

Tens alguma ideia do porquê? Estou aberto a outras soluções se estiver fazendo as coisas "da maneira errada".

Obrigado!

Responder1

Corrija-me se não entendi direito, mas você abre $HOME/.zshrccom nano, adiciona algumas alterações e salva. Então você tenta adicionar e confirmar $HOME/config/, mas não há alterações feitas neste diretório, portanto, nenhuma confirmação é feita. Você então chama zshrde substitui a alteração anterior $HOME/.zshrcpela $HOME/config/.zshrcqual nunca foi alterada.

Eu acho que você deveria ligar nano $HOME/config/.zshrcem seu script.

Então sua função mudaria o $HOME/config/.zshrc, confirmaria suas alterações e então substituiria o seu $HOME/.zshrcpelo novo $HOME/config/.zshrce o recarregaria.

informação relacionada