Ejecutar nano desde la función en el archivo de configuración (función en zshrc) no guarda los cambios

Ejecutar nano desde la función en el archivo de configuración (función en zshrc) no guarda los cambios

Estoy usando zsh como mi shell y estoy tratando de lograr esto:

En mi archivo .zshrc quiero tener una función que modifique mi .zshrc, lo guarde y lo vuelva a cargar.

Hasta ahora tengo funciones (en mi archivo .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
} 

Siempre que llamo a zshrd funciona. Pero cada vez que llamo a zshed, no es así. Abre el archivo en nano, pero no guarda ningún cambio realizado en el archivo y no confirma nada. ¿Quizás tenga algo que ver con stdin/stdout?

¿Tienes alguna idea de por qué? Estoy abierto a otras soluciones si estoy haciendo las cosas "mal".

¡Gracias!

Respuesta1

Corrígeme si no te entiendo bien pero abres $HOME/.zshrccon nano, agregas algunos cambios y guardas. Luego intenta agregar y confirmar, $HOME/config/pero no se realizan cambios en este directorio, por lo que no se realiza ninguna confirmación. Luego llama zshrdy anula el cambio anterior $HOME/.zshrccon $HOME/config/.zshrcel que nunca cambió.

Creo que deberías llamar nano $HOME/config/.zshrca tu guión.

Luego, su función cambiaría el archivo $HOME/config/.zshrc, confirmaría sus cambios y luego lo anularía $HOME/.zshrccon su nuevo $HOME/config/.zshrcy lo recargaría.

información relacionada