Mot complet du mode de commande Vim

12

Existe-t-il un moyen d'obtenir Vim en mode commande pour compléter les mots du fichier actuel? Disons que j'ai ce fichier:

one
two
three
once

et j'entre en mode ligne de commande

:myruncommand o|

|désigne la position du curseur. Comment puis-je compléter Vim oneou onceen appuyant sur Tab?

Nickolay Kolev
la source
Citation de la description du script: "En mode ':', l'achèvement n'est disponible qu'après un '/'." Pas vraiment ce dont j'ai besoin.
Nickolay Kolev

Réponses:

5

La réponse de jamesc serait souvent la plus pratique, mais si vous savez à l'avance que vous voudrez utiliser la saisie semi-automatique pour une commande ou une chaîne de recherche, ou d'autres fonctions uniquement disponibles dans un tampon, voici une autre façon d'accéder aux tampons appropriés :

  • Tapez q :pour ouvrir le tampon de commande
  • Tapez apour commencer à entrer la nouvelle commande: myruncommand o
  • Utilisez Ctrl+ N/ Ctrl+ Ppour compléter les mots clés, comme dans la réponse de jamesc

Fondamentalement, q :fait la même chose que : Ctrl+ F: vous permet de saisir des commandes comme si vous saisissiez du texte dans un tampon. De même, q /et / Ctrl+ Fvous permettent de taper des chaînes de recherche dans un tampon.

Michael Scheper
la source
Très bonne réponse. Le tampon de commande est quelque chose que j'aimerais vraiment mieux utiliser.
jamesc
@jamesc: Je suis content que cela vous ait été utile. Je ne savais pas Ctrl+F, donc votre réponse m'a aussi aidé.
Michael Scheper
3

Bien qu'il soit vrai que cela ne peut pas être complété nativement avec 'tab', il y a la possibilité de:

  • Saisie de la commande souhaitée en mode ligne de commande. Pour l'exemple ci-dessus, c'était:

    :myruncommand o
    
  • Maintenant, appuyez sur Ctrl-Fpour entrer dans la fenêtre de commande.

  • Utilisez Adéplacer vers la fin de la ligne et passez en mode Insertion.
  • Utilisez Ctrl-N/ Ctrl-Ppour ouvrir la complétion de mots et sélectionnez l'option souhaitée - dans cet exemple à la fois oneet oncedevraient être disponibles car ils sont dans un tampon ouvert.

J'ai ajouté cette réponse parce que ma recherche de «mot complet vim en mode commande» m'a amené ici et cela semble être une solution viable, même si elle n'utilise pas la touche «tabulation».

Cela fonctionne pour moi dans Vim 7.4

jamesc
la source
J'aurais dû deviner qu'il y avait un moyen simple d'accéder au tampon de commande / recherche tout en entrant déjà une commande ou une chaîne de recherche! Merci! J'ai ajouté une réponse basée sur la vôtre, pour la façon dont je le savais déjà. Mais sans doute, Ctrl+Fest plus pratique dans de nombreux cas. superuser.com/a/1016058/219388
Michael Scheper
1

L'achèvement est disponible si vous entrez dans l'historique du mode de commande. Très pratique pour modifier ou répéter les commandes précédemment utilisées.

Appuyez sur q: en mode normal pour accéder au volet d'historique des commandes.

Voir http://vim.wikia.com/wiki/Using_command-line_history pour plus de détails.

rvrsd
la source
1
En mode ligne de commande, si vous tapez, Ctrl-fl'historique de la ligne de commande s'ouvre et si vous souhaitez fermer cette fenêtre, vous pouvez taperCtrl-w q
SergioAraujo