2013-05-14 2 views
6

Comment rechercheriez-vous la chaîne suivante dans vim?vim comment rechercher l'URL

http://my.url.com/a/b/c 

J'ai essayé (a la très No Magic)

:/\Vhttp://my.url.com/a/b/c 

Mais il me donne:

E492 not an editor command: /\Vhttp://my.url.com/a/b/c

On pourrait penser qu'il y aurait un moyen simple de rechercher une chaîne littéralement ... Je ne suis pas trop intéressé par slash échapper à chaque barre oblique, ou d'écrire une recherche compliquée, car je dois rapidement rechercher différentes URL dans un fichier texte.

Répondre

8

Je ne sais pas pourquoi vous obtenez not an editor command depuis que je ne le fais pas. La manière la plus simple de rechercher sans avoir à échapper les barres obliques consiste à utiliser ? à la place, par ex.

:?http://my.url.com/a/b/c 
" or since the : is not necessary 
?http://my.url.com/a/b/c 

Cette recherche fait dans l'autre sens, si juste garder à l'esprit que

+0

Merci! Cela a fait l'affaire :-) – ktm5124

+2

La raison pour laquelle il a obtenu "pas une commande d'éditeur" est qu'il est entré dans la recherche en mode commande - indiqué par le ":". –

+0

Ah, je vois, c'est bon à savoir. – ktm5124

-1

Recherche dans vim est juste /, pas :/. Vous pouvez rechercher cette chaîne en n'échappant que les barres obliques:

+1

Inconvénient: l'ajout de toutes ces barres obliques est pénible si vous effectuez souvent des recherches d'URL; c'est ce que je suis venu ici pour éviter. –

3

Une autre manière d'effectuer une recherche vers l'avant (depuis la position de votre curseur) sans s'échapper est d'utiliser la commande :s.

vous pouvez faire:

:%[email protected]://my.url.com/a/b/[email protected]@n 

puis appuyez sur n pour naviguer texte correspondant avant, N arrière

Si vous voulez savoir combien de matchs dans le tampon, utilisez gn au lieu de n

note que, j'ai dit "sans s'échapper", je parlais de la barre oblique, si vous voulez faire une recherche précise, vous devez échapper à la période. .. puisque dans regex, . signifie n'importe quel char.

0

Peut également définir le registre de recherche directement.

:let @/='\Vhttp://my.url.com/a/b/c' 

Ensuite, vous pouvez utiliser n et N comme normal.

0

Utilisez MacVim (ou GVim). Ouvrez la recherche de GUI non-regex utilisant f (ou ctrl f sous Windows). C'est la manière recommandée de faire une recherche non-regex dans Vim. GUI Vim a de nombreuses améliorations sur le terminal vim comme celui-ci et je vous suggère fortement de l'utiliser à plein temps si vous n'êtes pas déjà.

Questions connexes