nano est un éditeur de texte ncurses facile à prendre en main (les raccourcis les plus utiles sont affichés), il fait moins peur que vim ou emacs lorsque l’on débute. Ces derniers sont puissants et très pratiques une fois configurés et/ou pris en main. Mais il arrive que l’on soit sur une machine qui n’a pas emacs, qui n’a pas notre config de vim,… il est alors très intéressant de connaître la base de nano. Voici les raccourcis dont j’ai personnellement besoin.

Raccourcis

Base

  • F1 pour afficher l’aide
  • ctrl+x Quitter
  • ctrl+o Enregistrer
  • ctrl+k Couper la ligne courante vers le presse-papiers
  • alt+t Couper tout ce qui est après le curseur (jusqu’à la fin du document)
  • alt+6 Copier la ligne courante dans le presse-papiers (penser à maintenir maj). Ce raccourci étant innaccessibe, ma config ajoute alt+' pour copier
  • ctrl+u Coller le presse-papiers
  • alt+u Annuler la dernière opération
  • alt+e Refaire la dernière opération annulée

Recherche

  • ctrl+w Rechercher une chaîne ou une expression rationnelle
  • alt+w Recommencer la dernière recherche
  • alt+↑ / alt+↓ Rechercher la prochaine occurrence en avant/arrière
  • alt+r Remplacer une chaîne ou une expression rationnelle
  • alt+g Aller à la ligne et à la colonne indiquées

Navigation

  • alt+] Aller à ([{ correspondant
  • ctrl+espace ⇔ ctrl+→
  • alt+espace ⇔ ctrl+←
  • ctrl+a ⇔ home
  • ctrl+e ⇔ end
  • alt+\ ⇔ ctrl+home
  • alt+/ ⇔ ctrl+end
  • ctrl+y Monter d'un écran
  • ctrl+v Descendre d'un écran
  • alt+( Aller au début du paragraphe
  • alt+) Aller à la fin du paragraphe

Utile

  • alt+a Marquer le texte depuis la position du curseur (maj+←↑→↓ fonctionne aussi directement)
  • alt+3 Commenter/décommenter la ligne courante ou les lignes marquées (penser à maintenir maj). Ce raccourci étant innaccessibe, ma config ajoute alt+* pour commenter
  • ctrl+c Indiquer la position du curseur
  • alt+d Statistiques du document
  • alt+→ / alt+← Passer d’un fichier à l’autre (si plusieurs fichiers ouverts)
  • alt+b Sauvegarde automatique (on/off)

Indentation

  • alt+} / alt+{ Indenter/Désindenter la ligne courante ou les lignes marquées
  • alt+i Activer/Désactiver l’indentation automatique
  • alt+q La touche tabulation ajoute des espaces au lieu de \t (on/off)

Interface

  • alt+h Activer/Désactiver la Touche « Début » intelligente
  • alt+o Utiliser 1 ligne de plus pour l'édition (commutateur)
  • alt+s Défilement progressif/par bloc
  • ctrl+alt+$ Affichage automatique sur plusieurs lignes (on/off)
  • ctrl+alt+# Afficher/Cacher les numéros de lignes
  • alt+x Afficher/Cacher les raccourcis principaux
  • alt+c Afficher/Cacher la position du curseur

Texte

  • alt+p Afficher/Cacher les blancs (espace, tabulation)
  • alt+y Activer/Désactiver la coloration syntaxique

Configuration

Sur un nano non configuré, il me "suffit" alors de faire : alt+h, alt+i, alt+s, ctrl+alt+$ pour obtenir la configuration qui me convient. Pour activer cela directement, mon fichier de configuration ~/.nanorc (généré à partir d’un cp /etc/nanorc ~/.nanorc) :

set smarthome                 # équivaut à alt+h
# set morespace                 # équivaut à alt+o
set autoindent                # équivaut à alt+i
set smooth                    # équivaut à alt+s
set softwrap                  # équivaut à ctrl+alt+$
# set casesensitive             # recherche sensible à la casse quel raccourci clavier ?
# set linenumbers               # équivaut à ctrl+alt+#
set matchbrackets "(<[{)>]}"  # plus d’utilités pour alt+]
set tabsize 4                 # tabulation de 4 au lieu de 8
set tabstospaces              # espaces au lieu de tabulation

bind ^S savefile main         # ctrl+s sauvegarde
bind M-B cutwordleft main     # alt+b supprime le mot précédent le curseur
bind M-N cutwordright main    # alt+n supprime le mot suivant le curseur
bind ^Q exit main             # ctrl+q quitte
bind M-* comment main         # les alt+num ne sont pas pratiques alt+* pour commenter
bind M-' copytext main       # les alt+num ne sont pas pratiques alt+' pour copier

## To include all existing syntax definitions, you can do:
include "/usr/share/nano/*.nanorc"
## Paint the interface elements of nano.
 set titlecolor brightwhite,blue
 set statuscolor brightwhite,green
 set numbercolor cyan
 set keycolor cyan
 set functioncolor green
## In root's .nanorc you might want to use:
# set titlecolor brightwhite,red
# set statuscolor brightwhite,red
# set numbercolor magenta
# set keycolor brightmagenta
# set functioncolor magenta

Dans Tilix, nano pose quelques difficultés

alt+(↑←↓→0123456789) permettent de basculer d’un terminal à l’autre (pavage), il est donc impossible d’utiliser les raccourcis correspondants de nano :

  • alt+→ / alt+← Passer d’un fichier à l’autre (si plusieurs fichiers ouverts)
  • alt+↑ / alt+↓ Rechercher la prochaine occurrence en avant/arrière

Pour les raccourcis alt+num, il est possible d’activer capslock mais ce n’est pas idéal, surtout que ceux-ci sont vraiment utiles :

  • alt+6 Copier la ligne courante dans le presse-papiers
  • alt+3 Commenter/décommenter la ligne courante ou les lignes marquées

Pour résoudre ce désagrément, une solution simple consiste à ajouter la touche super à ces raccourcis clavier de Tilix : Remplacer alt+(0123456789↑←↓→) par alt+super+(0123456789↑←↓→)

Conclusion

Deux points m’énervent dans nano :

  1. La coloration syntaxique : lorsqu’il y a des \" parmi des ", c’est vite illisible et il n’y a pas de couleur pour les espaces et tabulations (je pourrais regarder comment améliorer cela avec https://github.com/nanorc/nanorc peut-être).
  2. les raccourcis claviers sont "originaux" sans que je ne puisse comprendre la logique.

Si un gros fichier de configuration est nécessaire et que je dois apprendre de nouveaux raccourcis clavier, autant apprendre vim et ainsi jouir d’un logiciel puissant dont l’ergonomie est maximale (au détriment de l’intuitivité). Il est peut-être temps pour moi de commencer l’apprentissage…