Joseph Tux
En complément de :help

Aide-mémoire personnel sous vim

jeudi 21 avril 2011

On peut réaliser une aide personnelle sous vim, avec rubriques, surlignage des titres etc.. en 15 lignes de code [1]

 Préambule

Cette fonction, à intégrer dans son .vimrc est attribuée à une touche clavier.
Pour le moment, c’est <F2>, qui n’est pas utilisé par le terminal ni l’environnement graphique de mon système. [2]
Elle fonctionne comme un « switch » : elle ouvre ou ferme l’aide-mémoire alternativement [3]

Elle est une légère adaptation du script proposé et expliqué par Tristan Colombo dans GNU Linux Magazine France, N° 110 et 111 (Novembre et décembre 2008) qu’il m’ est donc l’occasion de remercier ici.

L’article s’intitule : « Vim : votre prochain environnement de développement intégré »

Ma version actuelle de vim est 7.2

 Limites, liées à l'utilisation des pliages (folding)

  1. à chaque modification du fichier d’ aide, il faudra modifier le .vimrc
  2. il faut encore améliorer l’affichage en supprimant le préambule des titres ( = des plis fermés) en redéfissant foldtext  [4]
  3. Le motif pour la coloration est limité par le signe « :» ; malheureusement, la reconnaissance est « gourmande », et c’est le dernier « :» qui sera la limite
    On peut supporter ou y remédier de 2 façons :
  4. en n’utilisant pas le signe « :» en dehors de cette fonction
  5. en remplaçant le motif par «  /^[^:]/+ » qui arrète la reconnaissance avant le 1er « :» ,
    à condition de mettre le signe « :» au début de chaque ligne non concernée.

Le fichier d’aide constitué pour les test est visible ici :

 /.vim/memory.txt

 La fonction HelpMemory

"Aide-mémoire personnel de vim:
" Utilise le fichier: memory.txt
" BUG:1 empécher l'édition (pas les commandes de navigation, d'affichage etc..
" )
"Variable d' état de l'affichage de l'aide:
let helpDisplay = 0
"Fonction d'affichage/masquage de l'aide:
function! HelpMemory()
   if g:helpDisplay == 0
       "création de la fenêtre:
       silent! topleft vertical 70split +buffer helpMemory
       let g:helpDisplay = 1
       set buftype=nofile
       "ouvre en lecture seule
       0read $HOME/.vim/memory.txt
       set matchpairs=
       highlight Memory ctermfg=white ctermbg=darkblue
       3match Memory /^.\+\ \+:/
       "3match Memory /^[^:]\+/
       "Pliages:
       silent! normal!
         "Configuration des plis, en fonction du fichier d'aide:
         1,2 fold
         "Sous-Rubriques Plis:
         9,14 fold
         15,18 fold
         19,22 fold
         23,27 fold
         28,35 fold
         36,42 fold
         43,46 fold
         47,50 fold
         "Rubrique générale Plis:
         6,50 fold
         "CTRL:
         51,54 fold
         "Commandes de VCSCommand (git):
         55,73 fold
         "Fin de la configuration des plis
       "Affichage plus concis des rubriques repliées:
       " ( sur 1 seule ligne, sans espace )
       set foldtext=v:folddashes.substitute(getline(v:foldstart
                         ),'/\\*\\\|\\*/\\\|{{{\\d\\=','','g')
       "Réduction d'une éventuelle marge encombrante:
       set foldcolumn=0
   else
       bdelete helpMemory
       let g:helpDisplay = 0
   endif
endfunction

Une meilleure approche à explorer :
foldexpr

ce mode de pliage crée automatiquement les plis en fonction d’une expression. Des exemples sont donnés ( :help fold-expr )

Ceci offre une facilité et une souplesse dans la réalisation et modification du fichier d’aide, destiné à évoluer puisque personnel

Plus besoin du long énoncé des plis dans .vimrc (plus propre)

Il y a mieux, que je viens de découvrir ICI
Rédiger son propre fichier d’aide !
avec :help ma_rubrique_perso le tour est joué !

[1Plus la configuration : 1 ligne par rubrique et le fichier d’aide personnel

[2"F2 pour l’aide mémoire personnalisé :
map :call HelpMemory()
imap :call HelpMemory()i

[3aucune mémoire de l’état précédent : toutes le rubriques sont pliées à l’ouverture de la fenêtre d’aide-mémoire

[4C’est fait simplement avec l’ exemple de :help fold-foldtext


Accueil | Contact | Plan du site | | Statistiques du site | Visiteurs : 105 / 57688

Suivre la vie du site fr  Suivre la vie du site GNU, LINUX, BSD, LL  Suivre la vie du site AIDES GNU/LINUX  Suivre la vie du site VIM et sed   ?

Site réalisé avec SPIP 3.1.6 + AHUNTSIC

Creative Commons License