2012-02-13 2 views
16

* En utilisant lorsque le curseur est sur un mot theWord, vim saute directement à la prochaine apparition de ce mot exactement, à savoir /\<theWord\> effectué.mot Ajouter sous le curseur pour rechercher motif

Questions:

Y at-il un moyen d'ajouter un autre mot otherWord à la recherche, lorsque le curseur est sur cet autre mot, de telle sorte que l'un /\<theWord\>\|\<otherWord\>? Effectué

+1

Hors sujet, mais merci de me faire connaître ce raccourci simple! J'apprends tous les jours avec vim :-) –

+2

@FlorianMargaine: Vous n'êtes pas seul;) Jetez un oeil à ceci: http://www.rayninfo.co.uk/vimtips.html – ezdazuzena

Répondre

13

Essayez quelque chose comme:

  1. * (pour rechercher un mot)
  2. aller ailleurs
  3. :let @/[email protected]/.'\|\<'.expand("<cword>").'\>' ce ajoute au motif de recherche précédent le mot sous le curseur) avec certains délimiteurs (\| et le mot frontières ...)
  4. si vous voulez, mettre en place un raccourci pour cela, comme: nnoremap <F4> :let @/.='\\|\<'.expand("<cword>").'\>'<CR>
+0

Greate !! Exactement ce que je cherchais, en particulier 4.)! Veuillez mettre une autre échappement '\' avant '\ |', c'est-à-dire '\\ |' pour que cela fonctionne. – ezdazuzena

+1

J'avais besoin de 'nmap : let @/= @ /.' \\ | \ <'. Expand ("").' \> ' '. Donc double barre oblique inverse avant le tuyau –

+0

Vous devriez toujours préférer 'nnoremap' à' nmap' si possible. Et BTW, ': let' soutient'. = 'Maintenant. –

6

Essayez

:nnoremap <silent> + :let @/ .= '\\|\<'.expand('<cword>').'\>'<cr>n 

Cela ajoutera le mot sous le curseur sur le registre de recherche lorsque « + » est touché, et passer à la * n * occurrence ext de tout motif recherché.

Si vous souhaitez étendre au mode visuel (comme it could be done to n_star), vous avez

:vnoremap <silent> + <c-\><c-n>:let @/ .= '\\|'.escape(lh#visual#selection(), '/\^$*.[~')<cr>n 

Avec lh#visual#selection() chercher la sélection en cours, et escape() pour neutraliser certains caractères actifs dans regexes. v_CTRL-\_CTRL-N étant une séquence d'échappement sûre et silencieuse.

+0

Toute explication sur ce que vous faites ici serait vraiment apprécié. Ne veux pas simplement copier et coller quelque chose. À votre santé! – ezdazuzena

+3

La commande ': help' permet de demander des précisions vim sur ce que vous ne savez pas déjà, ->': h nnoremap', ': h: let',': h. = ',': H expand() ' , ou ': hn',': h @/' NB: met fin au mode de commande. –

+0

Et c'est pourquoi il est appelé réponse et pas indice ?! ;) – ezdazuzena

Questions connexes