it-swarm.com.de

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

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

Ich habe meine VISUAL- und EDITOR-Env-Vars bereits auf vim gesetzt. Ebenso habe ich versucht SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR in meinem ~/.bashrc, ohne Erfolg.

Beim Ändern von Einheitendateien in Arch (systemd) über

 $ Sudo systemctl edit _unit_ 

Ich starre auf nano. Das Leben ist zu kurz und ich möchte auf jeden Fall vim. Wie mache ich das ?

21
Cbhihe

Sie legen die Variablen für Ihren eigenen Benutzer fest, führen jedoch den Befehl systemctl 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 Sudo mit -E exportiert also die aktuelle Umgebung:

    Sudo -E systemctl edit _unit_
    
  2. Fügen Sie die Variable hinzu (Sie benötigen nur SYSTEMD_EDITOR dafür) zu root's ~/.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 dessen Namen. So ist es /bin/vi und nicht vim.

14
terdon

Erste Methode, Sie können diese Zeile zu ~/.bashrc Hinzufügen:

export SYSTEMD_EDITOR=vim

Und dann Sudo visudo Und füge diese Zeile hinzu:

Defaults  env_keep += "SYSTEMD_EDITOR"

Starten Sie eine neue Bash-Sitzung, um wirksam zu werden, und führen Sie dann wie gewohnt Sudo systemctl edit <foo> Aus.

Die zweite Methode ist use update-alternatives:

Installieren Sie Ihr gewünschtes editor, z. vim.gtk3:

$ welcher Editor 
 Editor ist /usr/bin/editor[.____.‹$ Sudo Update-Alternativen --install "$ (welcher Editor)" Editor "$ (welcher vim.gtk3)" 15 

Wählen Sie dann 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 von EDITOR zur Laufzeit:

Sudo EDITOR=vim systemctl edit <foo>

Die Priorität ist erste Methode> dritte Methode> zweite Methode .

Versuchen Sie nicht, den "GUI" -Editor wie gedit festzulegen, weil Warum funktioniert gksu/gksudo oder das Starten einer grafischen Anwendung mit Sudo nicht mit Wayland? und Gedit verbraucht 100% der CPU beim Bearbeiten von Dateien

25
林果皞

Ich habe keine Geduld mit Nano und töte lieber eine Mücke mit einer Kanone.

Ich lösche Nano und platziere einen Symlink zu vim an seiner Stelle.

Erledigt.

0
Daniel Baker

Ich verwende einen Shell-Alias:

sc='Sudo SYSTEMD_EDITOR=/bin/vi /usr/bin/systemctl'

Dann einfach:

sc edit service-name

Es ist auch nützlich, um generell zu vermeiden, 7 von 9 Zeichen von systemctl in Fällen wie restart usw. einzugeben.

0
Tom Hale