_ Sudo systemctl edit [birim dosyası] _ için varsayılan düzenleyiciyi vim olarak değiştirin


18

[X13'te gnome3 ve gdm ile 4.13.12-1-ARCH]

VISUAL ve EDITOR env-vars'imi zaten ayarladım vim. Benzer şekilde SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR boşuna ~ / .bashrc denedim .

Arch'daki (systemd) birim dosyalarını değiştirirken

 $ sudo systemctl edit _unit_ 

Kendimi bakarken buluyorum nano. Hayat çok kısa ve vimelbette istiyorum . Bunu nasıl yaparım ?

Yanıtlar:


13

Değişkenleri kendi kullanıcınız için ayarlıyorsunuz, ancak systemctlkomutu root ( sudo) olarak çalıştırıyorsunuz . Bu nedenle, kullanıcı için ayarladığınız değişkenler önemsizdir.

Bunu düzeltmek için şunlardan birini yapabilirsiniz (ancak 1 ile devam edin):

  1. Mevcut ortamı dışa aktarmak için sudobirlikte çalıştırın -E:

    sudo -E systemctl edit _unit_
    
  2. Değişkeni (yalnızca buna ihtiyacınız vardır SYSTEMD_EDITOR) kök dizinine ekleyin ~/.profile:

    export SYSTEMD_EDITOR="/bin/vi" 
    

    Sonra koş

    sudo -i systemctl edit _unit_ 
    

Son olarak, yalnızca adını değil, düzenleyicinizin tam yolunu belirtmeniz gerektiğini unutmayın. Yani öyle /bin/vive değil vim.


Ben sudo -E ...değiştirdikten sonra zaten çalışıyordum /root/.bashrc. sudo -i ...Ancak sudo giriş kabuğu ( ) olarak çalışmayı düşünmemişti . Karşılık gelen bayrakları hatırlamanız gerektiğinden ikisi de çok tatmin edici değil, ama hey ... daha kötü şeyler var, sanırım ... Yine de (belki de ilgi çekicidir), bazılarımız için onaylıyorum: SYSTEMD_EDITOR=/usr/bin/vim; export SYSTEMD_EDITOR(kök olarak) sağ. Yolun tamamı, yr vimpkg'ın nasıl 1. sırada kurulu olduğuna bağlıdır . Artı kök için PATH tanımladığım gibi vim, yeterlidir. Bunu yapmanın tek bir yolu yok. Teşekkürler @terdon.
Cbhihe

1
@cbhihe ah, tamam. Ben sadece denedim vimve bu yüzden bahsettiğim şikayet etti. Ve hey, ben bir emacs kullanıcısıyım :)
terdon

1
@Cbhihe inan bana kolay bir seçim değildi. Ben bile kullanarak test vim! İşi kapatmak üç günümü aldı.
terdon

24

İlk yöntem, bu satırı şuraya ekleyebilirsiniz ~/.bashrc:

export SYSTEMD_EDITOR=vim

Ve sonra sudo visudobu satırı ekleyin:

Defaults  env_keep += "SYSTEMD_EDITOR"

Etkili olması için yeni bash oturumu başlatın, ardından sudo systemctl edit <foo>her zamanki gibi çalıştırın .

İkinci yöntem update-alternatives:

İstediğiniz şekilde kurun editor, örneğin vim.gtk3:

$ hangi editör
editör / usr / bin / editör
$ sudo update-alternuments - "$ (hangi düzenleyici)" düzenleyicisini "$ (hangi vim.gtk3)" yükle 15

Sonra istediğinizi seçin 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

Üçüncü yöntem doğrudan EDITORçalışma zamanında ayarlanır :

sudo EDITOR=vim systemctl edit <foo>

Öncelik birinci yöntem> üçüncü yöntem> ikinci yöntemdir .

Gibi sete "GUI" editörü kalkmayın geditçünkü neden yapmıyorsun gksu / gksudo veya Wayland ile sudo çalışma ile grafiksel uygulamanın başlatılmasını? ve Gedit dosyaları düzenlerken CPU'nun% 100'ünü kullanıyor


1
Teşekkürler 林果 皞, ama gerçekten demek istedim vim, değil gedit.
Cbhihe

@Cbhihe gedit, gui editörünün bile çalıştığını kanıtlayan bir örnektir, elbette vimbu cevapla kullanabilirsiniz .
皞 皞

1
林 さ ん, haklısın. Aslında sudoers dosyasını düzenleyerek yr çözümünü uyguladım sudo visudo... İlk yanıtı kabul etmede çok hızlıydım. Aradığım şey, tam /etc/suddoersolarak önerdiğiniz gibi dosyanın değiştirilmesidir . Yıl çözümü seçmediğiniz için teşekkür ederiz. Benim hatam.
Cbhihe

[GÜNCELLEME] Ayarlamamı tavsiye etmek için cevabımı düzenledim gedit.
皞 皞

0

Nano ile sabrım yok ve topla sivrisinek öldürmeyi tercih ediyorum.

Nano'yu siliyorum ve yerine vim eklemek için bir sembolik bağlantı yerleştiriyorum.

Bitti.


0

Kabuk takma adı kullanıyorum:

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

O zaman sadece:

sc edit service-name

Ayrıca , vb systemctl. Durumlarda 9 karakterin 7'sini yazmaktan kaçınmak için de yararlıdır restart.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.