Nano durch Sudoedit = Keine Farben

Nano durch Sudoedit = Keine Farben

Hier sind meine persönlichen Aliase zum Bearbeiten von Root-Dateien:

# 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 "$@"
}

Lassen Sie mich es vom Ende an beginnen:

  1. Sublime Text funktioniert jetzt großartig dankStephen Kitts Rat.

  2. Xed scheint auch gut zu funktionieren, es zeigt, dass die Privilegien erhöht sind, woran ich persönlich nicht gerne erinnert werde, aber es scheint kein Problem damit zu geben, die Farben sind da und es brauchte nicht einmal einigeWartenSchalter wie Sublime.

  3. Das Problem, das ich mit Nano habe, ist folgendes:

    Rufe ich es wie gewohnt auf, zB:

    sudo nano /etc/nanorc
    

    Die Farben sind da.

    Aber wenn ich es mit dem neuen Alias ​​aufrufe:

    sunano /etc/nanorc
    

    Es gibt überhaupt keine Farben.

    Die Konfiguration scheint jedoch gelesen worden zu sein, da sie genauso aussieht, wie ich sie konfiguriert habe.

BEARBEITEN1:Anscheinend betrifft dieses Problem mindestens die Konfigurationsdatei:

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

Andere Dateien, z. B. Bash oder C++, sind farbig, das verwirrt mich.

Antwort1

Das Problem hierbei ist, dass sudoeditdie Datei in eine temporäre Datei kopiert wird, bevor sie im Editor geöffnet wird. Wenn die Datei eine Erweiterung hat, wird die temporäre Datei mit derselben Erweiterung erstellt und die dateinamenbasierten Syntaxhervorhebungsmodi werden entsprechend ausgewählt (z.Bfür C-Dateien). Wenn die Datei keine Erweiterung hat, wie im Fall von nanorc, wird sie mit einer zufälligen Erweiterung erstellt. Dies verwirrt die Auswahl des dateinamenbasierten Syntaxhervorhebungsmodus und nanoführt letztendlich dazu, dass die Datei wie eine normale Textdatei behandelt wird.

Wenn Sie die Konfiguration so ändern können nano, dass jede nanorc*Datei als Konfigurationsdatei behandelt wird, können Sie das gewünschte Verhalten wiederherstellen. Ansonsten bin ich mir nicht sicher, ob es eine Möglichkeit gibt, dies automatisch zu handhaben.

Antwort2

versuchen

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

-E or --preserve-envübergibt Ihre Umgebungsvariablen an den neuen Prozess

verwandte Informationen