« Vim » : différence entre les versions

De Disposition de clavier bépo
Ligne 16 : Ligne 16 :
===Directions : [HJKL] <-> {CTSR} ===
===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.
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.
<pre class="xkb"><nowiki>
" {CTSR} = « gauche / bas / haut / droite »
" {CTSR} = « gauche / bas / haut / droite »
noremap c h
noremap c h
noremap C H
noremap C H
noremap t j
noremap t j
noremap T J
noremap T J
noremap s k
noremap s k
noremap S K
noremap S K
noremap r l
noremap r l
noremap R L
noremap R L
" {H} = « Change »    (h = bloc, H = jusqu'à la fin de ligne)
" {H} = « Change »    (h = bloc, H = jusqu'à la fin de ligne)
noremap h c
noremap h c
noremap H C
noremap H C
" {K} = « Suppr. »    (k = caractère, K = ligne)
" {K} = « Suppr. »    (k = caractère, K = ligne)
noremap k s
noremap k s
noremap K S
noremap K S
" {L} = « Remplace »  (l = caractère, L = texte)
" {L} = « Remplace »  (l = caractère, L = texte)
noremap l r
noremap l r
noremap L R
noremap L R
" {J} = « Tab »      (j = onglet précédent, J = onglet suivant)
" {J} = « Tab »      (j = onglet précédent, J = onglet suivant)
noremap j t
noremap j t
noremap J T
noremap J T
Les raccourcis {gt} et {gs} (= [gj] et [gk]) ne fonctionnent pas, pour une raison qui m'échappe. Voilà une correction :
</nowiki></pre>
" ???
noremap gt gj
noremap gs gk


Nota : cela ne fonctionne pas sur un « :Ex ». Ballot.
Par ailleurs, {t} et {s} ne fonctionnent pas avec « :Ex », l'explorateur de fichiers. C'est ballot.


===Mot-à-mot : [WEB] <-> {PÉB} ===
===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) :
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) :
<pre class="xkb"><nowiki>
" {É} = « End_of_word » (fin de mot)
" {É} = « End_of_word » (fin de mot)
noremap é e
noremap é e
noremap É E
noremap É E
" {P} = « Word »        (mot suivant)
" {P} = « Word »        (mot suivant)
noremap p w
noremap p w
noremap P W
noremap P W
" {W} = « Paste »      (w/W = coller après/avant)
" {W} = « Paste »      (w/W = coller après/avant)
noremap w p
noremap w p
noremap W P
noremap W P
</nowiki></pre>


''Nota'' : avec la variante Bépo-intl, il est inutile de remapper ces touches, W étant bien mieux placé.
''Nota'' : avec la variante Bépo-intl, il est inutile de remapper ces touches, W étant bien mieux placé.
Ligne 60 : Ligne 60 :
===Bonus : {EÈÇ} ===
===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 » :
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 » :
<pre class="xkb"><nowiki>
noremap e ^
noremap e ^
noremap E 0
noremap E 0
</nowiki></pre>


== Reconfiguration totale des touches ==
== Reconfiguration totale des touches ==

Version du 22 mai 2008 à 23:06

Attention

Page en cours de construction

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

Les raccourcis {gt} et {gs} (= [gj] et [gk]) ne fonctionnent pas, pour une raison qui m'échappe. Voilà une correction :

" ???
noremap gt gj
noremap gs gk

Par ailleurs, {t} et {s} ne fonctionnent pas avec « :Ex », l'explorateur de fichiers. C'est 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

La première chose à faire pour jouer avec ~/.vimrc !

if has("autocmd")
  autocmd! bufwritepost .vimrc source ~/.vimrc
endif

Voir les espaces insécables

Bien entendu, on peut changer la couleur.

" colore les nbsp
highlight NbSp ctermbg=lightgrey guibg=lightred
match NbSp /\%xa0/

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 utilisable permet 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.

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.