Ändern Sie den Standardeditor in vim für _ sudo systemctl edit [unit-file] _

17

[4.13.12-1-ARCH mit gnome3 und gdm auf Xorg]

Ich habe bereits meine VISUAL- und EDITOR-Umgebung auf eingestellt vim. Ähnlich habe ich es SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR in meinem ~ / .bashrc versucht, ohne Erfolg.

Beim Ändern von Unit-Dateien in Arch (systemd) über

 $ sudo systemctl edit _unit_ 

Ich starre mich an nano. Das Leben ist zu kurz und ich will vimauf jeden Fall. Wie mache ich das ?

Cbhihe
quelle

Antworten:

13

Sie legen die Variablen für Ihren eigenen Benutzer fest, führen den systemctlBefehl jedoch als root ( sudo) aus. Daher sind die Variablen, die Sie für Ihren Benutzer festgelegt haben, irrelevant.

Um dies zu beheben, können Sie entweder (aber mit 1 gehen):

  1. Führen Sie sudomit , -Edamit es die aktuelle Umgebung exportiert:

    sudo -E systemctl edit _unit_
    
  2. Fügen Sie die Variable (die Sie nur dafür benötigen SYSTEMD_EDITOR) zu root hinzu ~/.profile:

    export SYSTEMD_EDITOR="/bin/vi" 
    

    Dann lauf mit

    sudo -i systemctl edit _unit_ 
    

Beachten Sie schließlich, dass Sie den vollständigen Pfad zu Ihrem Editor angeben müssen, nicht nur den Namen. So ist es /bin/viund nicht vim.

terdon
quelle
Ich habe bereits mit gearbeitet, sudo -E ...nachdem ich mich verändert hatte /root/.bashrc. Hatte allerdings nicht daran gedacht, sudo als Login-Shell ( sudo -i ...) auszuführen. Beide sind nicht sehr zufriedenstellend, da Sie sich an die entsprechenden Flags erinnern müssen, aber hey ... es gibt schlimmere Dinge, denke ich ... Trotzdem (vielleicht ist es von Interesse) bestätige ich, dass für einige von uns SYSTEMD_EDITOR=/usr/bin/vim; export SYSTEMD_EDITOR(als root) gilt richtig. Der Pfad hängt davon ab, wie Sie Ihr Paket an vimerster Stelle installiert haben. Außerdem reicht es, wenn ich PATH für root definiert vimhabe. Es gibt nicht nur einen Weg, dies zu tun. Danke @terdon.
Cbhihe
1
@ Cbhihe ah, OK. Ich habe es mit nur versucht vimund es hat sich beschwert, weshalb ich es erwähnt habe. Und hey, ich bin ein Emacs-Benutzer :)
terdon
1
@Cbhihe glauben Sie mir, es war keine einfache Wahl. Ich habe es sogar mit getestet vim! Ich habe drei Tage gebraucht, um das Ding zu schließen.
terdon
20

Bei der ersten Methode können Sie diese Zeile hinzufügen zu ~/.bashrc:

export SYSTEMD_EDITOR=vim

Und dann sudo visudound füge diese Zeile hinzu:

Defaults  env_keep += "SYSTEMD_EDITOR"

Starten Sie eine neue Bash-Sitzung, damit sie wirksam wird, und führen Sie sie dann sudo systemctl edit <foo>wie gewohnt aus.

Zweite Methode ist die Verwendung update-alternatives:

Installieren Sie Ihre gewünschten editor, zB vim.gtk3:

$ welcher Editor
editor ist / usr / bin / editor
$ sudo update-alternatives --install "$ (welcher Editor)" editor "$ (welcher vim.gtk3)" 15

Dann wählen Sie Ihr gewünschtes editor:

$ sudo update-alternatives --config editor
There are 7 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/vim.gtk3    50        auto mode
  1            /bin/ed             -100       manual mode
* 2            /bin/nano            40        manual mode
  3            /usr/bin/code        0         manual mode
  4            /usr/bin/gedit       5         manual mode
  5            /usr/bin/vim.basic   30        manual mode
  6            /usr/bin/vim.gtk3    50        manual mode
  7            /usr/bin/vim.tiny    15        manual mode

Press <enter> to keep the current choice[*], or type selection number: 6
update-alternatives: using /usr/bin/vim.gtk3 to provide /usr/bin/editor (editor) in manual mode

Die dritte Methode ist das direkte Setzen der EDITOROn-Laufzeit:

sudo EDITOR=vim systemctl edit <foo>

Vorrang haben die erste Methode> dritte Methode> zweite Methode .

Versuchen Sie nicht, den "GUI" -Editor so einzustellen, wie beispielsweise, geditweil gksu / gksudo oder das Starten einer grafischen Anwendung mit sudo nicht mit Wayland funktionieren. und Gedit verwendet 100% der CPU beim Bearbeiten von Dateien

林果 林果
quelle
1
Danke 林果 林果, aber ich habe es wirklich so gemeint vim, nicht gedit.
Cbhihe
@Cbhihe geditist nur ein Beispiel, um zu beweisen, dass sogar der GUI-Editor funktioniert. Natürlich können Sie vimdiese Antwort verwenden.
2.
1
林 林 ん, du hast recht. Tatsächlich habe ich Ihre Lösung implementiert, indem ich die sudoers-Datei mit sudo visudo... bearbeitet habe. Ich habe die erste Antwort zu schnell akzeptiert. Was ich gesucht habe, ist genau die Änderung der /etc/suddoersDatei, wie Sie sie vorgeschlagen haben. Vielen Dank und Entschuldigung, dass Sie sich nicht für Ihre Lösung entschieden haben. Mein Fehler.
Cbhihe
[UPDATE] Ich habe meine Antwort bearbeitet, um Ratschläge hinzuzufügen, die nicht festgelegt wurden gedit.
5.
0

Ich habe keine Geduld mit Nano und ziehe es vor, eine Mücke mit einer Kanone zu töten.

Ich lösche Nano und setze einen Symlink an seine Stelle.

Erledigt.

Daniel Baker
quelle