2008-09-26 15 views
5

Dans l'éditeur Vim, j'ai choisi ]I sur une fonction (en code C++). Cela a présenté une liste, qui indique 'Appuyez sur ENTRÉE ou tapez commande pour continuer'.Comment sauter à une occurrence à partir de la liste de recherche Vim

Maintenant, pour sauter à une occurrence disons 6, je tape 6 - mais cela ne fonctionne pas.

Quelles commandes puis-je taper dans un tel cas, et comment puis-je sauter à la Nième occurrence de cette liste?

Mise à jour:

En fait, j'essayé :N (par exemple: 6) - mais le moment où je tape : Vim en mode insertion et le côlon est insérée dans le code à la place.

Mise à jour

En supposant approche :N est correcte, toujours désinstaller complète et installer de Vim, sans aucune configuration aussi n'a pas aidé - mais maintenant taper : ne bascule pas en mode insertion Vim.

Répondre

2

Il devrait vous présenter une liste comme:

1: 345 my_func (int var) 
2: 4523 my_func (int var) 
3: 10032 my_func (3); 

La deuxième colonne est des numéros de ligne. Type: 345 pour passer à la ligne 345.

+0

John En fait j'ai essayé [: N] (http://stackoverflow.com/questions/137935/how-to-jump-to-an-occurrence-from-vim-search-list#137942) (ex: 6) - mais au moment où je tape: Vim entre en mode Insertion, et les deux points sont insérés dans le code au lieu. – vikramsjn

+0

On dirait que vous avez une configuration très inhabituelle. Comment entrer des commandes comme: w si le colon entre en mode insertion? –

+0

: w ne passe pas en mode insertion. Et tout le reste semble bien fonctionner. En fait, je me souviens d'avoir utilisé: N il y a quelque temps, mais aujourd'hui, tout à coup, il semble avoir cessé de fonctionner. Bien que je ne pense pas avoir changé mon fichier Vim cfg depuis un an maintenant. – vikramsjn

0

Lorsque j'utilise vim, et je saute à une étiquette, en faisant par exemple:

:tag getfirst 

je suis présenté avec quelque chose qui ressemble à:

# pri kind tag    file 
    1 F m getfirst   /home/sthorne/work/.../FormData.py 
       class:FakeFieldStorage 
       def getfirst(self, k, default): 
    .... 
    8 F m getfirst   /home/sthorne/work/.../CGIForm.py 
       class:CGIForm 
       def getfirst(self, name): 
Choice number (<Enter> cancels): 

Je tape '5' pour aller à la 5ème occurrence.

Si vous ne pouvez pas obtenir votre vim d'avoir ce comportement (il semble être par défaut pour mon vim), vous pouvez utiliser g] au lieu de ctrl], qui est analogue à : tselect au lieu de : tag

1

Do: h tselect sur vim pour voir la définition complète

Si vous voyez déjà l'étiquette que vous voulez utiliser, vous pouvez taper 'q' et entrez le nombre.

-2

Essayez d'utiliser 123G pour accéder à la ligne 123 (voir :h G).

1

Si vous cliquez sur un bouton de saut et que vous obtenez une liste de cibles possibles, sélectionnez le numéro et appuyez à nouveau sur le saut.

Donc, étant donné

1: 345 my_func (int var) 
2: 4523 my_func (int var) 
3: 10032 my_func (3); 

Si vous appuyez sur '2] |', il devrait passer directement à cette ligne.

1

J'ai eu le même problème, et bricoler les réponses précédentes et d'expérimenter, je suis venu avec cette solution:

[I // gives list of matches for word under cursor, potentially some matches are in headers. remember the number of the match you're interested in, eg. the 3rd 
q // quits the list of matches 
3[Ctrl-i // (with cursor in same position) jumps to third match