« Utilisateur:Denis S » : différence entre les versions

De Disposition de clavier bépo
 
Ligne 130 : Ligne 130 :
venir. Le remède consiste à désactiver (ou rediriger) ces mappings incommodants.
venir. Le remède consiste à désactiver (ou rediriger) ces mappings incommodants.
Pour avoir le dernier mot {{C|après}} la lecture des greffons je mets
Pour avoir le dernier mot {{C|après}} la lecture des greffons je mets
ce code dans {{C|~/.vim/after/plugin/bepo_restore.vim}}:
ce code dans {{C|~/.vim/after/plugin/bepo_after.vim}}:


<source lang="vim">
<source lang="vim">

Dernière version du 17 mai 2014 à 02:09

Un autre bépoète…

Je n'avais jamais développé de méthode de frappe à l'aveugle en 18 années d'utilisation d'un clavier qwerty.

J'avais développé des douleurs non seulement aux mains, mais aussi à la nuque à force d'alterner le regard entre l'écran et le clavier.

J'ai décidé d'y remédier en novembre 2011 après avoir découvert par hasard l'histoire de monsieur Dvorak, l'existence du projet bépo et le concept du clavier orthogonal. Je suis passé au bépo à l'aide d'un clavier TypeMatrix acheté dans ce but. (Il n'y a rien de mieux qu'un nouveau jouet pour se motiver!) J'ai profité du congé des fêtes de Noël 2011 pour m'entraîner à la maison sur Ktouch et Klavaro. Depuis ce temps j'utilise bépo exclusivement au travail et à la maison. J'ai drastiquement gagné en confort et les douleurs aux mains et au cou sont disparues.

Vim en bépo

D'après ce que j'ai pu tester et voir ailleurs, je pense que ma méthode mérite d'être présentée:

  • Je prends clavier bépoc clavier bépot clavier bépos clavier bépor pour une navigation facile.
  • Mais contrairement à ce qui est proposé sur la page Vim#Principe je laisse aussi clavier bépoh clavier bépoj clavier bépok clavier bépol intacts. On se retrouve donc avec 2 jeux de touches équivalentes pour les déplacements: soit c/t/s/r pour l'ergonomie et h/j/k/l pour la compatibilité avec les macro et greffons de l'ensemble de la communauté Vim. Finalement je trouve pratique de toujours pouvoir compter sur les touches h/j/k/l peu importe la machine sur laquelle je me retrouve.
  • Heureuse coïncidence, nous avons 4 caractères accentués en accès direct. Ce qui permet de fermer la boucle sans aucun effet domino:
    • clavier bépoç remplace clavier azertyc (çhange)
    • clavier bépoà remplace clavier azertyt (àtteindre jusqu'à) (à remarquer la symétrie avec f)
    • clavier bépoé remplace clavier azertyr (écrase)
    • clavier bépoè remplace clavier azertys (insère en substitution)
    • Même remplacement des majuscules pour cohérence mnémotechnique. Celà libère C/T/S/R pour d'autres usages, par exemple:
      • clavier bépoC déplacement accéléré dans le même sens que clavier bépoc (mot précédent comme clavier bépoB)
      • clavier bépoT déplacement accéléré dans le même sens que clavier bépot
      • clavier bépoS déplacement accéléré dans le même sens que clavier bépos
      • clavier bépoR déplacement accéléré dans le même sens que clavier bépor (mot suivant comme clavier bépoW)
  • Quant aux majuscules H/J/K/L, je ne voit pas l'intérêt de les transférer sur la rangée de repos.
  • Avez vous remarqué la panoplie de touches vacantes relativement accessibles en bépo? êĥñŵŝïîëùüÿä最ə≠®ßþ~ôóòðõáåâñ¸¹²³⁴⁵… Je ne leur ai toujours pas attribué de commandes mais j'aime bien me dire qu'elles n'attendent que ça.

Pour le ~/.vimrc

Code à mettre dans le fichier ~/.vimrc (ou autre fichier.vim séparé):

" a) redirection de ctsr
nnoremap c h
vnoremap c h
nnoremap t gj
vnoremap t gj
nnoremap s gk
vnoremap s gk
" ATTENTION: "vnoremap s" est en conflit avec le greffon vim-surround 
nnoremap r l
vnoremap r l

" b) récupération des touches ctsr perdues
nnoremap ç c
vnoremap ç c
nnoremap à t
vnoremap à t
onoremap à t
nnoremap è s
vnoremap è s
nnoremap é r
vnoremap é r
nnoremap Ç C
vnoremap Ç C
nnoremap À T
vnoremap À T
nnoremap È S
vnoremap È S
nnoremap É R
vnoremap É R

" c) déplacements accélérés (optionnel)
"    moins utiles quand on maîtrise H M L / ? à f , ; b B e w W ) ( } { g 0 $ + - _
"    voir :help motion.txt
nnoremap C B
vnoremap C B
onoremap C B
nnoremap T 5gj
vnoremap T 5gj
onoremap T 5gj
nnoremap S 5gk
vnoremap S 5gk
onoremap S 5gk
nnoremap R W
vnoremap R W
onoremap R W
onoremap aR aW
onoremap iR iW

Pour les greffons

" Résolution de conflits connus entre bépo (touches ctsr) et les greffons

" The-NERD-tree
let NERDTreeMapOpenInTab=',t' 
let NERDTreeMapOpenVSplit=',s'
let NERDTreeMapRefresh=',r'
let NERDTreeMapChdir=',C'
let NERDTreeMapOpenInTabSilent=',T'
let NERDTreeMapRefreshRoot=',R'


" vim-surround
" (beaucoup de soucis, désactive tous les mapping et redirige autrement)
" (un beau greffon que je n'exploite pas à sa juste valeur)
let g:surround_no_mappings=1
xmap <Leader>s    <Plug>Vsurround
nmap <Leader>cs   <Plug>Csurround
nmap <Leader>ds   <Plug>Dsurround
nmap <Leader>ys   <Plug>Ysurround
nmap <Leader>yss  <Plug>Yssurround
nmap <Leader>yS   <Plug>YSurround
nmap <Leader>ySs  <Plug>YSsurround
nmap <Leader>ySS  <Plug>YSsurround


" mru.vim (un de mes greffons favoris)
"
" Modification à coder en dur après installation: Le fichier mru.vim contient
" les lignes suivantes qui entrent en conflit avec la touche t en bépo. Éditer
" le fichier et mettre ces lignes en commentaire (ou rediriger le mapping
" ailleurs si vous tenez à utiliser les onglet):
"
"    nnoremap <buffer> <silent> t
"                \ :call <SID>MRU_Select_File_Cmd('edit,newtab')<CR>
"    vnoremap <buffer> <silent> t
"                \ :call <SID>MRU_Select_File_Cmd('edit,newtab')<CR>

Pour les greffons (suite)

Certains greffons ont des mappings débutant par c/t/s/r. Cela a pour effet de rendre Vim moins réactif: il attends de voir si une autre touche est à venir. Le remède consiste à désactiver (ou rediriger) ces mappings incommodants. Pour avoir le dernier mot après la lecture des greffons je mets ce code dans ~/.vim/after/plugin/bepo_after.vim:

" Résolution de conflits entre bépo et les greffons, avoir le dernier mot.
" Éviter ralentissements

" vim-abolish
silent! nunmap cr

" vim-unimpaired
silent! nunmap cox
silent! nunmap cow
silent! nunmap cor
silent! nunmap con
silent! nunmap col
silent! nunmap coi
silent! nunmap coh
silent! nunmap cod
silent! nunmap cos
silent! nunmap cou
silent! nunmap coc