Bonjour!
Je cherche une méthode simple pour rechercher dans vim les occurences identiques. Par exemple, si un mot apparaît plusieurs fois, ou une ligne apparaît plusieurs fois.
Du coup, au lieu de réinventer la roue, je me suis dit qu’il devait bien en avoir parmis vous qui avaient ça dans leur vimrc?
[quote=“thuban”]Bonjour!
Je cherche une méthode simple pour rechercher dans vim les occurences identiques. Par exemple, si un mot apparaît plusieurs fois, ou une ligne apparaît plusieurs fois.
Du coup, au lieu de réinventer la roue, je me suis dit qu’il devait bien en avoir parmis vous qui avaient ça dans leur vimrc?
[/quote]
Avec un /foo tu doit pouvoir te placer sur la première occurrence après c’est “n” ou “N” pour te déplacer au prochaine ou au précédente occurrence et lorsque tu cherche la Xème occurrence c’est avec “Xn” ou “XN”.
Maintenant si tu veux chercher les occurrence et les modifié c’est encore autre chose, il doit aussi y avoir moyen avec de l’expression régulière mais je t’avoue ne plus avoir trop l’habitude à ça en ce moment je n’utilise presque exclusivement que vi.
Je te conseille néanmoins d’attendre peut-être qu’un vimeux à quelque chose de plus croustillant à ce mettre sous les doigts ( je vais suivre de loin ce fil ).
- EDIT - Si c’est pour un remplacement ça doit pouvoir ce faire avec l’option g pour parcourir le fichier complètement dans ce genre là :
:g/foo/foo2
Ben non justement, ce n’est pas forcément pour un remplacement.
Ça serait plutot pour que vim détecte les occurences identiques. Par exemple, toutes les lignes identiques.
En faisant /foo, tu ne fais qu’une recherche. Sauf que on ne peut pas savoir à l’avance ce qu’il faut rechercher. Autrement dit, tu ne sais pas avant la recherche ce qui est en double.
Il faudrait en gros un uniq qui se colore dans vim
bah voilà, fallait juste penser au bon mot à chercher : uniq :
Toutes les solutions sont ici :
vim.wikia.com/wiki/Uniq_-_Removi … cate_lines
Dans le vimrc :
" supprime les lignes en double
map <C-u> :%s/^\(.*\)\(\n\1\)\+$/\1/<CR>
" affiche les lignes en double en fond vert
highlight Redundantlines ctermbg=green guibg=green
match Redundantlines /^\(.*\)\(\n\1\)\+$/
[quote=“thuban”]bah voilà, fallait juste penser au bon mot à chercher : uniq :
Toutes les solutions sont ici :
vim.wikia.com/wiki/Uniq_-_Removi … cate_lines
Dans le vimrc :
" supprime les lignes en double
map <C-u> :%s/^\(.*\)\(\n\1\)\+$/\1/<CR>
" affiche les lignes en double en fond vert
highlight Redundantlines ctermbg=green guibg=green
match Redundantlines /^\(.*\)\(\n\1\)\+$/
[/quote]
Effectivement c’est pas ceux à quoi je penser, n’empêche je garde ton lien de côté