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.