Nano a través de Sudoedit = Sin colores

Nano a través de Sudoedit = Sin colores

Estos son mis alias personales para editar archivos propiedad de root:

# CLI superuser nano; compiled; version 2.8.0

function sunano {
    export SUDO_EDITOR='/usr/local/bin/nano'
    sudoedit "$@"
}


# GUI superuser xed; packaged; version 1.2.2

function suxed {
    export SUDO_EDITOR='/usr/bin/xed'
    sudoedit "$@"
}


# GUI superuser sublime-text; packaged; version 3126

function susubl {
    export SUDO_EDITOR='/opt/sublime_text/sublime_text -w'
    sudoedit "$@"
}

Déjame empezar desde el final:

  1. Sublime Text funciona muy bien ahora gracias aEl consejo de Stephen Kitt.

  2. Xed también parece funcionar bien, muestra que los privilegios están elevados, algo que a mí personalmente no me gusta que me recuerden, pero no parece haber ningún problema con ello, los colores están ahí y ni siquiera necesitaba algunosesperarcambiar como Sublime.

  3. El problema que tengo es con Nano el siguiente:

    Si lo invoco como estaba acostumbrado, por ejemplo:

    sudo nano /etc/nanorc
    

    Los colores están ahí.

    Pero si lo llamo con el nuevo alias:

    sunano /etc/nanorc
    

    No hay ningún color.

    Sin embargo, la configuración parece haber sido leída porque tiene el mismo aspecto que la configuré.

EDITAR1:Aparentemente este problema afecta como mínimo al archivo de configuración:

-rw-r--r-- 1 root root 8.6K Apr  8 02:30 /etc/nanorc

Otros archivos, por ejemplo Bash o C++, están coloreados, estoy confundido.

Respuesta1

El problema aquí es que sudoeditcopia el archivo a un archivo temporal antes de abrirlo en el editor. Cuando el archivo tiene una extensión, el archivo temporal se crea con la misma extensión y los modos de resaltado de sintaxis basados ​​en el nombre de archivo se seleccionan adecuadamente (p.ejpara archivos C). Cuando el archivo no tiene extensión, como es el caso de nanorc, se crea con una extensión aleatoria; esto confunde la selección del modo de resaltado de sintaxis basada en nombres de archivos y nanotermina tratando el archivo como un archivo de texto estándar.

Si puede reconfigurarlo nanopara tratar cualquier nanorc*archivo como un archivo de configuración, podrá restaurar el comportamiento que busca. De lo contrario, no estoy seguro de que haya una manera de manejar esto automáticamente.

Respuesta2

intentar

function sunano {
    export SUDO_EDITOR='/usr/local/bin/nano'
    sudoedit -E "$@"
    #        ^^ 
    #         add this
}

-E or --preserve-envpasa sus variables de entorno al nuevo proceso

información relacionada