Cambia l'editor predefinito quando sudo visudo

21

Quando si fa sudo visudo , l'editor predefinito è nano .
Voglio cambiarlo in vi o vim .

Ho già creato vim dell'editor predefinito e lo uso come sostituto di gedit per aprire file php, .txt, .c e .h, inserendo un file vim.desktop in ~/.local/share/applications/ e modifica corretta di ~/.local/share/applications/mimeapps.list o /etc/gnome/defaults.list . Tuttavia a quanto pare questo non si applica a nano .

Qualche idea?

    
posta Cbhihe 01.10.2014 - 22:46

3 risposte

17

Il problema non è che non si applica a nano , è che non si applica alla shell:

Imposta la variabile di ambiente VISUAL :

export VISUAL=vim

Aggiungi anche questo ~ / .bashrc per renderlo permanente.

Come sembra che tu stia utilizzando vim in generale, imposta sia VISUAL che EDITOR :

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

o più POSIX-corretti

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

Suppongo che nano sia il valore di una o di entrambe le variabili.

Per utilizzare effettivamente l'editor in visudo, dobbiamo gestire che sudo non mantiene normalmente le variabili d'ambiente. L'opzione -E cambia quella.

sudo -E visudo

Senza -E qui, avresti di nuovo un valore predefinito di nano

Le due variabili in uso molto prima che esistessero anche i file *.desktop o mime* .
(E la cosa impressionante è che sono stati effettivamente usati come standard .)
In Ubuntu, il default di sistema sembra essere impostato con sudo update-alternatives --config editor . Mostra un menu per cambiare l'associazione corrente.

Vedi la sezione ENVIRONMENT in man visudo :

  VISUAL           Invoked by visudo as the editor to use

  EDITOR           Used by visudo if VISUAL is not set
    
risposta data Volker Siegel 01.10.2014 - 23:42
8

Come descritto in questa risposta , aggiungi

Defaults editor=/path/to/editor

al file sudoers .

Nota: questo funziona solo se il file che si sta modificando contiene la riga Defaults editor=/path/to/editor o include un file che lo contiene.

Ad esempio: visudo -f /etc/sudoers.d/my_sudoers_extension verrà impostato su Nano.

    
risposta data Muhamed Huseinbašić 19.01.2017 - 16:29
2

Se non hai mai intenzione di usare nano, puoi anche semplicemente rimuoverlo. Quindi il sistema utilizzerà vi / vim come predefinito.

sudo apt-get purge nano

So che non è la risposta ufficiale, ma è uno dei primi comandi per me dopo aver installato Ubuntu.

    
risposta data Philipp Claßen 11.01.2018 - 17:58

Leggi altre domande sui tag