Sudo visudo olduğunda varsayılan düzenleyiciyi değiştir


23

Bunu yaparken sudo visudo, varsayılan editördür nano. Veya
olarak değiştirmek istiyorum . vivim

vimVarsayılan düzenleyiciyi zaten hazırladım ve geditphp, .txt, .c ve .h dosyalarını açmak için yerine ya da yerine doğru bir vim.desktopdosyayı koyarak php, .txt, .c ve .h dosyalarını açmak için bir alternatif olarak kullandım . Ancak görünüşe göre bu geçerli değildir . ~/.local/share/applications/~/.local/share/applications/mimeapps.list/etc/gnome/defaults.listnano

Bir ipucu ?


Kontrol ettin man visudomi?
fkraiem

Yazdığımdan beri bazı şeyleri öğrendim - daha sonra eklemeyi umuyorum; Linux dağıtımları farklı şekilde ele alıyor.
Volker Siegel

Evet ve env-var VISUAL'umu vim ve .bashrc ve .bash_profile öğelerinde "ihraç" olarak ayarlayıp kabuğunu boşa harcadım. Hatta oturumu kapatıp oturumu kapattığından emin olmak için oturum açtı.
Cbhihe

2
Daha sudo -E visudosonra cevabımı ekledim, denedin mi? -E, sudotüm env değişkenlerini kaldırmaz. Öyle çünkü ubuntu bir çizgide Defaults env_resetvar/etc/sudoers
Volker Siegel

Ayrıca, update-alternativesben de ekledim mi?
Volker Siegel

Yanıtlar:


19

Sorun, uygulanmadığı nanodeğil, kabuk için geçerli olmadığıdır:

Sadece VISUALortam değişkenini ayarlayın :

export VISUAL=vim

Bunu da ~ yapmak için bunu ~ / .bashrc ekleyin.

Genel olarak vim kullanıyor gibisiniz, her ikisini de ayarlayın VISUALve EDITOR:

export VISUAL="vim"
export EDITOR="$VISUAL"

veya daha fazla POSIX-doğru

VISUAL="vim" ; export VISUAL
EDITOR="$VISUAL" ; export EDITOR

nanoBir veya iki değişkenin değeri olduğunu varsayıyorum .

Editörden visudo'da faydalanmak için, aslında sudoortam değişkenlerini normalde tutmayan bir işlem yapmalıyız . Seçenek bunu -Edeğiştirir.

sudo -E visudo

Olmadan -Eburada, sen bir varsayılan sona ereceğini nanotekrar


İki değişken uzun zaman önce adlandırılmış *.desktopve mime*hatta var olan dosyaların kullanımında .
(Ve etkileyici şey: aslında ortak bir standart olarak kullanıldı .)
Ubuntu'da sistem varsayılanı ayarlanmış gibi görünüyor sudo update-alternatives --config editor. Mevcut ilişkilendirmeyi değiştirmek için bir menü gösterir.


Bölümüne bakın ENVIRONMENTiçinde man visudo:

  VISUAL           Invoked by visudo as the editor to use

  EDITOR           Used by visudo if VISUAL is not set

1
Onu denedin mi? Varsayılan sudoolarak, ortamdaki çoğu ortam değişkenini çalıştırdığı komut için ayarlar. VISUAL=vim sudo visudo(ve önerdiğiniz varyasyonlar) benim için çalışmıyor ve çalışması beklenmemelidir. sudo VISUAL=vim visudoYine de çalışır. (Sadece ikisini de denedim, emin olmak için.) Bu arada VISUALve EDITORvarsayılan olarak ayarlanmamış, ayarlanmamış nano. VISUALve varsayılan konfigürasyonda seçim EDITORyapan mekanizma değildir (kendilerine danıştıkları sürece, açılmadıklarını veya boş kalmadıklarını ve devam ettiklerini söylemedikçe). visudonano
Eliah Kagan

3
Ile çalışır sudo -E visudo- kesinlikle cevap olmalı, doğru.
Volker Siegel

+1 ve ben mükemmel cevabı kabul ediyorum, Volker. "Besten Dank!" -E bayrağıyla, ortam değişkenlerini geçirmeme izin verilmediğine dair hala bir hata mesajı aldım, ancak daha sonra kısıtlı erişimli bir kullanıcıdan yönetici ayrıcalıklarına ve tombala olanlarına dava açtım! Her şey iyi çalışıyor.
Cbhihe

Oh, yanlış / teneke yardım gidebilir Bir şey daha eklemek için mutluyum;) Eğer seçenekler ile (çizgiler kontrol eder misiniz Default/ etc / sudoers cinsinden)? Bunu yasaklayan, ancak varsayılan dosyamda olmayan bir seçenek olduğunu düşünüyorum.
Volker Siegel

@VolkerSiegel: / etc / sudoers içindeki env_reset varsayılanına başvurduğunuzu hayal ediyorum . Benim durumumda sadece böyle ayarlanır.
Cbhihe

8

Bu cevapta açıklandığı şekilde ekleyin.

Defaults editor=/path/to/editor

için sudoers dosyası .

Not: Bu sadece düzenlenmekte olan dosya Defaults editor=/path/to/editorsatır içeriyorsa veya onu içeren bir dosya içeriyorsa işe yarar .

Örneğin: visudo -f /etc/sudoers.d/my_sudoers_extensionNano için varsayılan olacaktır.


2
+1: Güzel bir tane ve bu konuya ilk başladığımda bunu farketmemiştim, teşekkürler.
Cbhihe

3

Eğer asla nano kullanmayı düşünmüyorsanız, kolayca kaldırabilirsiniz. Sonra sistem varsayılan olarak vi / vim kullanacaktır.

sudo apt-get purge nano

Bunun resmi bir cevap olmadığını biliyorum, ama Ubuntu'yu yükledikten sonra benim için ilk komutlardan biri.


Bu kesinlikle "necroposting" olarak nitelendirilir, ancak hey ... Yr cevabı Ubuntu ile ilgilendiği için ilginç. Diğer bazı dağıtımlar (bunlar arasında ArchLinux) yalnızca ilk sırada kurduğunuz editörlere sahiptir, bu yüzden ne Ubuntu ile karşılaştığım pbm, ne de önerdiğiniz önlemlere başvurmanız gerekmiyor. Eldeki durumda (ubuntu + nano + vim), çoğunun editör açısından seçeneklere ihtiyacı olabileceğini düşünüyorum. Herhangi birinin kullanıcısının profilinde beğenilerin nadiren görüldüğü emacsve vimaktif olarak bir arada var olduğu doğrudur . Ancak nanove vimvahşi doğada birlikte oluruz ... Tutun nano!
Cbhihe

kesinlikle en iyi cevap
botkop

emacsve vimmutlulukla arada var ve sürekli kullanılmaktadır. nanotıpkı haşere gibi, sistemden ne kadar erken çıkarsa o kadar iyi. Bazı insanların rahat bulabileceğini anlıyorum ama bu cevap tamamen geçerli.
mementum
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.