nano VS vi

Nano est un éditeur laid et peu pratique qui vous rappelle le (pas si) bon temps de MSDOS 3.3. Si ça plaît aux nostalgiques, moi, ça me saoule…

Or sous Ubuntu c’est l’éditeur implicite. Certaines commandes l’utilise pour éditer des fichiers de configuration comme la commande crontab par exemple:

luc@ubuntu:~$ crontab -e

Mon premier reflexe[1] fut de virer de p****n de nano.

luc@ubuntu:~$ sudo dpkg -r nano
dpkg : un problème de dépendance empêche la suppression de nano :
ubuntu-standard dépend de nano. dpkg : erreur de traitement de nano (--remove) :
problème de dépendance - suppression ignorée
Des erreurs ont été rencontrées pendant l'exécution : nano

Autrement dit nano fait partie de la base: impossible de le virer. Un peu comme si on voulait supprimer « Internet Explorer » de Windows. Bon, si on ne peut pas le virer, soyons fairplay, il suffit de mettre vi comme éditeur implicite et le tour est joué. Normalement, il suffit de déclarer « une variable d’environnement » du type

EDITOR=vi

Donc une recherche dans /etc[2] nous donne…

luc@ubuntu:/etc$ grep -ri editor *

…rien. En fait, le programme /usr/bin/editor est « codé en dur[3] » dans les programmes qui utilise un éditeur:

luc@ubuntu:~$ strings /usr/bin/crontab | grep -i editor
EDITOR /usr/bin/editor

La logique m’échappe, mais bon…

luc@ubuntu:~$ ls -l /usr/bin/editor
lrwxrwxrwx root root ..... /usr/bin/editor -> /etc/alternatives/editor
luc@ubuntu:~$ ls -l /etc/alternatives/editor
lrwxrwxrwx root root ..... /etc/alternatives/editor -> /usr/bin/nano

WTF!

luc@ubuntu:~$ apropos alternatives
update-alternatives (8) - maintenance des liens symboliques...

Depuis quand faut-il un programme pour choisir? Ok, on va utiliser la commande idoine …

luc@ubuntu:~$ sudo update-alternatives --set editor /usr/bin/vi
update-alternatives: Impossible de trouver l'alternative /usr/bin/vi.

Ca marche pô…

luc@ubuntu:~$ sudo update-alternatives --set editor /usr/bin/vim
update-alternatives: Impossible de trouver l'alternative /usr/bin/vim.

Ca marche pô non plus. On sort l’artillerie lourde:

luc@ubuntu:~$ sudo strace -o /tmp/resu update-alternatives --set editor /usr/bin/vim
luc@ubuntu:~$ grep vim /tmp/resu
execve("/usr/sbin/update-alternatives", ....."/usr/bin/vim"]...
stat64("/usr/bin/vim.tiny", {st_mode=S_IFREG....

vim.tiny? Ok!

luc@ubuntu:~$ update-alternatives --set editor /usr/bin/vim.tiny
Utilisation de « /usr/bin/vim.tiny » pour fournir « editor ».

On devrait lire les pages de man jusqu’au bout[5] ou mieux, arrêter d’utiliser ce genre de distribution.

Notes

[1] un peu primaire certes, mais Merde!
[2] toute la configuration du système est là, normalement…
[3] c’est mal!
[5] luc@ubuntu:~$ update-alternatives –list editor

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>