La grille de technologie, linux, et langues
 
 NORMAL 
 ~ 
 [unix] 
 100% ☰ : 1 
 

« Les sauterelles envahissent l’Égypte et les virgules envahissent la ponctuation ».

— Victor Hugo
La légende des siècles
vim

Si vous avez l’habitude de taper en anglais et en français, comme moi, comment gérez-vous les espaces qui précèdent les points d’interrogation et d’exclamation, les deux-points, le point-virgule, et les guillemets ? En français, selon les normes (?? en tout cas), il faut avoir des espaces avant le point d’interrogation et le point mais les anglais sont étonnés de voir cela.

Avec mon éditeur préféré Nvim sous Linux c’est chose facile.

Allons !

  • Créer un ficher à l’endroit suivant pour soit vim/gvim ou bien nvim

(vim/gvim):

.vim/keymap/fr.vim)

(nvim):

.local/share/nvim/site/keymap/fr.vim

  • Avec le contenu très simple suivant:

let b:keymap_name="French"

"highlight lCursor ctermbg=red guibg=red

loadkeymap

?   ?
!   !
:   :
;   ;

Les espaces qui se trouvent devant les points d’exclamation et d’interrogation sont des espaces insécables. On peut entrer ces espaces unicode sous nvim et vim en tapant Ctrl+V+u+0+0+a+0 et normlement vous pouvez aussi couper-coller le texte ci-haut.

Ce fichier va bien s’occuper des marques d’interrogation et d’exclamation, les deux-points et le point-virgule. Quant aux guillemets on va créer un fichier de configuration, spécifique « french.vim » qui se trouvera à l’endroit suivant:

(vim/gim):

~/.vim/keymap/french.vim

(nvim):

~/.config/nvim/french.vim

  • Ce fichier contient le suivant:

"keymappings unique to french
set spelllang=fr
set keymap=french
:imap <expr> " getline('.')[col('.')-2]=~'\S' ?  ' »' : '« '
":imap <expr> ' getline('.')[col('.')-2]=~'\S' ?  ' »' : '« '
set background=dark
set wordwrap

Ce fichier va gérer non seulement le chargement du « keymap », mais va aussi remplacer en temps réel les " anglais avec les « ou » selon la position et y compris l’espace insécable.

Ce fichier va aussi change la palette de couleurs selon que la langue du fichier et détermine aussi une option de retour automatique (Davantage sur ce sujet une prochaine fois)

Maintenant il y a plusieurs façons d’activer ces fichiers. Une façon simple de choisir les options en français est d’utliser la fonction spelllang pour déclencher le keymap. Vous pouvez accomplir cela avec ce qui suit dans votre ~/.vimrc ou ~/.config/nvim/init.vim:

autocmd OptionSet spelllang call LanguageSettings()

function! LanguageSettings()
  if &spelllang =~ 'fr'
		source ~/.config/nvim/fr.vim
	elseif &spelllang =~ 'en'
		source ~/.config/nvim/en.vim
  endif
endfuction

Alors si vous changer votre dictionnaire pour corriger l’orthographe en français, les options de clavier vont suivre automatiquement !