VIM: Come ottieni l'ultimo comando ex che hai usato?


10

Trovo che a volte scrivo un comando ex mode molto lungo che fa un sacco di cose. Sono una sorta di "mini-script" che scrivo nell'editor di testo, quindi avvio la modalità ex e li copio nella riga ex ed eseguo. Ma poi finisco sempre per modificare in modalità ex e poi trovo difficile riavere le modifiche che ho fatto in modalità ex alla mia sessione di modifica del testo.

Usando la tastiera, come copi l'ultimo comando ex che hai usato e incollalo nel tuo editor di testo?

(Nota: questo è un po 'l'opposto di questa domanda " come faccio a copiare / incollare in modalità vim ex " in cui l'utente chiede "come si copia dall'editor di testo e si incolla nella modalità ex?". La mia domanda è la opposto perché desidero copiare dalla modalità ex e incollare nel mio editor di testo.)


Ho un kludge che lo fa ... ma richiede che il mouse selezioni ... il menu a discesa di gvim per copiare ... e se la linea ex è di due linee la pasta ha una nuova linea che è fastidiosa. (ma più fastidioso è il fatto che sto usando il mouse e la GUI per copiare / incollare ...).
Trevor Boyd Smith,

Risposte:


16

Il :registro contiene l'ultimo: -comando (ex comando) che hai eseguito, quindi puoi semplicemente digitare il comando ":p(tra virgolette doppie) per incollare quel registro nel buffer corrente. Vedere:

:help registers
:help ":

Nota che ci sono registri per l'ultima ricerca, il nome del buffer corrente, ecc.


17

Prova il q:comando. (Sono due caratteri, prima qe poi :.) Questo è un normale comando in modalità che aprirà la cronologia degli ex comandi in un buffer Vim speciale. Puoi rivedere la cronologia, strappare tutto quello che vuoi come sempre, e / o modificare una riga e premere <enter>su di essa per eseguirla.


Fai solo attenzione a non digitare :q, che la mia memoria muscolare cerca di forzare su di me!
frabjous,

7
q:funziona dalla modalità normale. Se sei già in modalità riga di comando (ex), digita Ctrl-F per aprire quella finestra della riga di comando.
garyjohn,

Hmm .... Ctrl + F non fa nulla ma stampa "^ F" nella mia riga di comando in modalità ex. Mi manca un po 'di salsa magica?
Stabledog,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.