VIM: Comment obtenez-vous la dernière commande ex que vous avez utilisée?

10

Je trouve que parfois j'écris une très longue commande en mode ex qui fait beaucoup de choses. Ce sont en quelque sorte des "mini-scripts" que j'écris dans l'éditeur de texte puis je lance le mode ex et les copie dans la ligne ex et les exécute. Mais ensuite, je finis toujours par éditer en mode ex, puis j'ai du mal à récupérer les modifications que j'ai apportées en mode ex à ma session d'édition de texte.

À l'aide du clavier, comment copiez-vous la dernière commande ex que vous avez utilisée et collez-la dans votre éditeur de texte?

(Remarque: c'est en quelque sorte l'opposé de cette question " comment copier / coller en mode ex vim " où l'utilisateur demande "comment copier depuis l'éditeur de texte et coller dans le mode ex?". Ma question est la ci-contre car je souhaite copier depuis le mode ex et le coller dans mon éditeur de texte.)

Trevor Boyd Smith
la source
J'ai un kludge qui fait cela ... mais il faut que la souris sélectionne ... le menu déroulant gvim pour copier ... et si la ligne ex est de deux lignes, la pâte a une nouvelle ligne qui est ennuyeuse. (mais plus ennuyeux est le fait que j'utilise la souris et le gui pour copier / coller ...).
Trevor Boyd Smith,

Réponses:

16

Le :registre contient la dernière: -commande (ex commande) que vous avez exécutée, vous pouvez donc simplement taper la commande ":p(avec le guillemet double) pour coller ce registre dans le tampon courant. Voir:

:help registers
:help ":

Notez qu'il existe des registres pour la dernière recherche, le nom du tampon actuel, etc.

Heptite
la source
17

Essayez la q:commande. (Ce sont deux caractères, d'abord qet ensuite :.) Il s'agit d'une commande en mode normal qui ouvrira l'historique de vos anciennes commandes dans un tampon Vim spécial. Vous pouvez consulter l'historique, retirer tout ce que vous voulez comme toujours, et / ou modifier une ligne et appuyer <enter>dessus pour l'exécuter.

Herbert Sitz
la source
Faites juste attention à ne pas taper à la :qplace, ce que ma mémoire musculaire essaie de me forcer!
frabjous le
7
q:fonctionne à partir du mode normal. Si vous êtes déjà en mode ligne de commande (ex), tapez Ctrl-F pour ouvrir cette fenêtre de ligne de commande.
garyjohn
Hmm .... Ctrl + F ne fait rien d'autre que d'imprimer "^ F" dans ma ligne de commande ex-mode. Me manque-t-il de la sauce magique?
Stabledog