Vim
Vim n'est pas UN éditeur de texte, c'est LE éditeur de texte. Je ne tomberai pas dans le piège grossier du troll Vim/Emacs, puisqu'il est clair Vim est mieux. Je vais tâcher de regrouper sur cette page toutes les infos relatives à l'utilisation de Vim en Bépo.
Ergonomie
Vim n'utilise que très peu de raccourcis en Ctrl+{} et est conçu pour faire toutes les opérations en mode « dactylo », c'est-à-dire avec les doigts proches de la position de repos. L'objectif est la prévention des TMS ; le prix à payer est un temps d'apprentissage assez long.
Parmi les fonctionnalités de base qui tuent, il y a le déplacement du curseur avec HJKL (équivalent des flèches) ou WEB pour le mot-à-mot (équivalent de Ctrl+flèche). Là où le bât blesse, c'est que Vim est conçu pour un clavier Qwerty. Il convient donc de reconfigurer Vim pour l'utiliser en Bépo.
TODO : ajouter des liens vers des tutoriels Vim.
Reconfiguration partielle des touches
Ces lignes sont à ajouter au fichier ~/.vimrc. Reste à voir à l'usage si ça suffit pour utiliser Vim confortablement, à suivre…
Directions : [HJKL] <-> {CTSR}
On se contente ici d'échanger les touches deux à deux : c'est le strict minimum pour utiliser Vim (et les applications qui utilisent ce mode de déplacement du curseur), et ces touches sont tellement standard que la question de leur positionnement ne se pose même pas.
" {CTSR} = « gauche / bas / haut / droite » noremap c h noremap C H noremap t j noremap T J noremap s k noremap S K noremap r l noremap R L " {H} = « Change » (h = bloc, H = jusqu'à la fin de ligne) noremap h c noremap H C " {K} = « Suppr. » (k = caractère, K = ligne) noremap k s noremap K S " {L} = « Remplace » (l = caractère, L = texte) noremap l r noremap L R " {J} = « Tab » (j = onglet précédent, J = onglet suivant) noremap j t noremap J T
Nota : cela ne fonctionne pas sur un « :Ex ». Ballot.
Mot-à-mot : [WEB] <-> {PÉB}
Sous Vim, ces touches sont encore plus importantes que [H] et [L]. Le placement du {B} est acceptable, mais pas celui du {W}. Parmi toutes les possiblités de mapping, voilà comment regrouper ces trois touches côte à côte sous la main gauche en gardant {B} pour « back » (mot précédant) :
" {É} = « End_of_word » (fin de mot) noremap é e noremap É E " {P} = « Word » (mot suivant) noremap p w noremap P W " {W} = « Paste » (w/W = coller après/avant) noremap w p noremap W P
Nota : avec la variante Bépo-intl, il est inutile de remapper ces touches, W étant bien mieux placé.
Bonus : {EÈÇ}
Ces trois touches sont inutilisées ({E} ayant été remplacé par {É}) et peuvent donc être affectées. En particulier, {E} est très facile d'accès et pourrait servir comme « début de ligne » :
noremap e ^ noremap E 0
Reconfiguration totale des touches
Une option radicale consisterait à reconfigurer toutes les touches en mode normal, afin qu'elles correspondent aux labels du clavier Azerty. On pourrait même générer un tel fichier automatiquement avec les outils du projet Bépo si suffisamment d'utilisateurs étaient intéressés…
Autres options utiles
À ajouter dans le fichier ~/.vimrc.
Appliquer automatiquement les modifications de ~/.vimrc
if has("autocmd") autocmd! bufwritepost .vimrc source ~/.vimrc endif
Voir les espaces insécables
" colore les nbsp highlight NbSp ctermbg=lightgrey guibg=lightred match NbSp /\%xa0/
Bien entendu, on peut changer la couleur.
Autres applications « à la Vim »
Bon nombre d'applications courantes utilisent les touches de déplacement de Vim :
- beaucoup d'outils standard du shell : man, more, less…
- la plupart des gestionnaires de fenêtres en mosaïque : Wmii, Dwm, Xmonad, Awesome…
- certains logiciels comme aptitude, mutt, ou même Firefox avec l'extension Vimperator…
- même Emacs dispose d'un mode Vim qui
le rend utilisablepermet de déplacer le curseur sans bouger les mains (pas testé ;-))
Par contre, ces applications n'utilisent pas le fichier ~/.vimrc, et pour la plupart d'entre elles la syntaxe de configuration est complètement différente. Liste à compléter.
- aptitude : http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s04s02.html
- less : http://unixhelp.ed.ac.uk/CGI/man-cgi?lesskey
- Vimperator : http://vimperator.cutup.org/index.php?title=Configuration (syntaxe globalement compatible avec Vim)
Pire : certaines applications ne sont pas adaptables au Bépo, les touches de commande étant codées en dur (!). Liste à compléter.
- vifm
À compléter.