[4.13.12-1-Arch avec gnome3 et gdm sur Xorg]
J'ai déjà défini mes env-vars VISUAL et EDITOR sur vim
. De même, j'ai essayé SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR
dans mon ~/.bashrc, en vain.
Lors de la modification des fichiers d'unité dans Arch (systemd) via
$ Sudo systemctl edit _unit_
Je me retrouve à regarder nano
. La vie est trop courte et je veux vim
par tous les moyens. Comment puis-je faire cela ?
Vous définissez les variables pour votre propre utilisateur, mais exécutez la commande systemctl
en tant que root (Sudo
). Par conséquent, les variables que vous avez définies pour votre utilisateur ne sont pas pertinentes.
Pour résoudre ce problème, vous pouvez soit (mais aller avec 1):
Exécutez Sudo
avec -E
pour qu'il exporte l'environnement actuel:
Sudo -E systemctl edit _unit_
Ajoutez la variable (vous avez seulement besoin de SYSTEMD_EDITOR
pour cela) au root de ~/.profile
:
export SYSTEMD_EDITOR="/bin/vi"
Ensuite, exécutez avec
Sudo -i systemctl edit _unit_
Enfin, notez que vous devez spécifier le chemin d'accès complet à votre éditeur, pas seulement son nom. Alors c'est /bin/vi
et non vim
.
Première méthode, vous pouvez ajouter cette ligne à ~/.bashrc
:
export SYSTEMD_EDITOR=vim
Et alors Sudo visudo
et ajoutez cette ligne:
Defaults env_keep += "SYSTEMD_EDITOR"
Démarrez une nouvelle session bash pour prendre effet, puis exécutez Sudo systemctl edit <foo>
comme d'habitude.
La deuxième méthode consiste à utiliser update-alternatives
:
Installez votre editor
souhaité, par exemple vim.gtk3
:
$ quel éditeur éditeur est /usr/bin/editor[.____.-04$ Sudo update-alternatives --install "$ (quel éditeur)" editor "$ (quel vim.gtk3)" 15
Choisissez ensuite votre 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
La troisième méthode consiste à définir directement le EDITOR
lors de l'exécution:
Sudo EDITOR=vim systemctl edit <foo>
Les priorités sont première méthode> troisième méthode> deuxième méthode .
N'essayez pas de définir l'éditeur "GUI" tel que gedit
parce que Pourquoi gksu/gksudo ou le lancement d'une application graphique avec Sudo ne fonctionne-t-il pas avec Wayland? et Gedit utilise 100% du CPU lors de l'édition des fichiers
Je n'ai aucune patience avec Nano et je préfère tuer un moustique avec un canon.
Je supprime Nano et place un lien symbolique vers vim à sa place.
Terminé.
J'utilise un alias Shell:
sc='Sudo SYSTEMD_EDITOR=/bin/vi /usr/bin/systemctl'
Alors juste:
sc edit service-name
Il est également utile pour éviter généralement de taper 7 des 9 caractères de systemctl
dans des cas comme restart
, etc.