Salvataggio di macro vim


166

Qualcuno sa come salvare / riutilizzare correttamente le macro registrate all'interno di un editor VIM?

Risposte:


217

Utilizzare qseguito da una lettera per registrare una macro. Questo va solo in uno dei registri copia / incolla in modo da poterlo incollare normalmente con i comandi "xpo "xPin modalità normale.

Per salvarlo, apri .vimrc e incolla il contenuto, quindi il registro sarà disponibile al prossimo avvio di vim.
Il formato è simile a:

let @q = 'macro contents'

Fai attenzione alle citazioni, però. Dovrebbero essere sfuggiti correttamente.

Quindi per salvare una macro puoi fare:

  • Dalla modalità normale: qq
  • inserisci qualunque comando
  • Dalla modalità normale: q
  • apri .vimrc
  • "qpper inserire la macro nella let @q = '...'riga

3
Inoltre, se devi inserire caratteri speciali (come escape, nel mio caso) usa CTRL-V <ESC>in modalità insert per inserire il carattere corretto. Un letterale <ESC>non funziona
adam_0,

5
"Si noti, tuttavia, che il metodo sopra usando: let non funzionerà come previsto per le macro che si fanno terminare con un carattere <CR> o <NL> (ritorno a capo o newline).". vim.wikia.com/wiki/Macros#Saving_a_macro
Paolo

2
Sono richieste le virgolette (intorno ai contenuti delle macro)?
user2472071

15
Ctrl+r Ctrl+r registerNamegli input registrano i contenuti senza interpretarli, meglio di "qp. +1 per il metodo in-vim comunque.
LAFK dice di reintegrare Monica

@ adam_0 Potresti approfondire questo? Forse, includi un esempio? Non riesco a capire come incorporare personaggi speciali, vale a dire esc. Ho provato ogni combinazione di immissione di una via di fuga senza alcun risultato. Il "codice chiave" finisce per rovinare la macro e l'intera sequenza viene stampata.
GH05T,

21

Per una soluzione più robusta puoi dare un'occhiata a Marvim .

Ti consente di salvare una macro in uno spazio dei nomi specifico (o utilizzare il tipo di file come spazio dei nomi predefinito) e successivamente puoi cercare le tue macro salvate e caricarle in un registro pronto per l'uso.

Se riutilizzi molte macro, questo è piuttosto utile.


6
Voglio solo secondare questo e dire quanto sia facile configurare marvim: copiare un singolo file nella directory / plugin, quindi utilizzare F3 per salvare una macro e F2 per l'esecuzione.
Raine Revere,

18

Scrivi le tue macro nel tuo ~ / .vimrc, per definire una macro lanciata da CTRL + O per esempio, aggiungi la seguente riga al tuo ~ / .vimrc:

map <C-O> MACROTEXT

quando si registra una macro digitando qaè possibile recuperare il testo della macro digitando"ap


L'uso di "ap o equivalente non ha funzionato, ma puoi ottenere le stesse informazioni da: reg
DShook,

"ap farebbe riferimento a una macro registrata nel aregistro
Tyler Fowle il

11

Il comando :mkexrc(o :mkvimrc) può essere utilizzato per salvare tutte le impostazioni correnti :mape :setin un file. Vedi :help mkexrcper i dettagli.


4

Puoi fare così sul tuo ~/.vimrc

:let @a="iHello World!\<CR>bye\<Esc>"

NOTA: è necessario utilizzare virgolette doppie per poter usare chiavi speciali come in \<this silly example>.

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.