web-dev-qa-db-fra.com

Changer l'éditeur par défaut lorsque Sudo visudo

Lorsque vous utilisez Sudo visudo, l'éditeur par défaut est nano.
Je souhaite le changer en vi ou vim.

J'ai déjà défini vim comme éditeur par défaut et je l’utilise comme substitut à gedit pour ouvrir les fichiers php, .txt, .c et .h en plaçant un fichier vim.desktop dans ~/.local/share/applications/ et en modifiant correctement le ~/.local/share/applications/mimeapps.list ou le /etc/gnome/defaults.list. Cependant, apparemment, cela ne s'applique pas à nano.

Un indice?

23
Cbhihe

Le problème n'est pas qu'il ne s'applique pas à nanoname__, mais qu'il ne s'applique pas au shell:

Définissez simplement la variable d'environnement VISUALname__:

export VISUAL=vim

Ajoutez ceci aussi ~/.bashrc pour le rendre permanent.

Comme vous semblez utiliser vim en général, définissez à la fois VISUALet EDITORname__:

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

ou plus POSIX-correct

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

Je suppose que nanoétait la valeur d'une ou des deux variables.

Pour utiliser réellement l'éditeur dans visudo, nous devons gérer le fait que Sudone conserve pas les variables d'environnement normalement. L'option -E change cela.

Sudo -E visudo

Sans le -E ici, vous vous retrouveriez avec une valeur par défaut de nanoname__


Les deux variables étaient déjà utilisées bien avant les fichiers nommés *.desktop ou mime* existaient même.
(Et ce qui est impressionnant, c’est qu’ils ont été utilisés comme norme commune .)
Sous Ubuntu, la valeur par défaut du système semble être Sudo update-alternatives --config editor. Il montre un menu pour changer l'association actuelle.


Voir la section ENVIRONMENTin man visudo :

  VISUAL           Invoked by visudo as the editor to use

  EDITOR           Used by visudo if VISUAL is not set
19
Volker Siegel

Comme décrit dans cette réponse , ajoutez

Defaults editor=/path/to/editor

au fichier sudoers .

Remarque: cela ne fonctionnera que si le fichier en cours d'édition contient la ligne Defaults editor=/path/to/editor ou inclut un fichier qui le contient.

Par exemple: visudo -f /etc/sudoers.d/my_sudoers_extension sera par défaut à Nano.

8

Si vous n'envisagez jamais d'utiliser nano, vous pouvez également le supprimer. Ensuite, le système utilisera vi/vim par défaut.

Sudo apt-get purge nano

Je sais que ce n'est pas la réponse officielle, mais c'est l'une des premières commandes pour moi après l'installation d'Ubuntu.

3
Philipp Claßen