Come aggiungere un comando nell'editor vim?


87

Se supponiamo che il mio nome del file del codice sorgente sia "foo.c". Durante la modifica e il debug eseguo sempre questo comando: -

:! gcc -g foo.c -o foo; gdb foo

Posso aggiungere un comando personalizzato a Vim in modo tale che se digito ": debug" il comando sopra eseguito? Come ci riesco?

Risposte:


103

Sì. Documentazione Vim, sezione 40.2, Mapping della riga di comando :

L'editor Vim ti consente di definire i tuoi comandi. Esegui questi comandi proprio come qualsiasi altro comando in modalità riga di comando. Per definire un comando, utilizzare il comando ": comando", come segue:

: comando Elimina Primo 1 Elimina

Ora quando si esegue il comando ": DeleteFirst" Vim executes ": 1delete", che elimina la prima riga.

Nota: i comandi definiti dall'utente devono iniziare con una lettera maiuscola. Non è possibile utilizzare ": X", ": Successivo" e ": Stampa". Il carattere di sottolineatura non può essere utilizzato! Puoi usare le cifre, ma questo è scoraggiato.

Metti quella linea nel tuo ~/.vimrc(meno l'iniziale :ovviamente) e sarà definita ogni volta che inizi vim. Inoltre, utilizzare %:tper fare riferimento al file in fase di modifica (la scrittura ! gcc %:tviene sostituita da ! gcc foo.c).

Se desideri che sia definito solo per un file o per determinati file, desideri un comando automatico.


4
se si sta sostituendo un comando esistente, è necessario utilizzare command!.
Phyatt,

14

Vim ha già il supporto per Makefile (: make). Se ne crei uno per la tua fonte, puoi specificare in esso ciò che vuoi fare. Inoltre, tramite ctags, Vim sarà in grado di scorrere tutti gli errori rilevati durante la compilazione.


5

Aggiungi un comando vi editor definito dall'utente:

Questo farà sì che quando l'utente digita :Legendin modalità normale, viene aggiunto un blocco di testo sotto il cursore.

Passaggio 1: inserisci questa riga in un file chiamato ~ / legend_header.txt`

this text will be added

Passaggio 2: inserisci questo comando nel tuo file ~ / .vimrc (se il file non esiste, crealo):

"The following command puts the contents of ~/legend_header.txt 
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/legend_header.txt

Passaggio 3: riavviare vi per rendere effettive le modifiche. Hai finito.

Provalo

Passaggio 1: aprire un nuovo file in vi. Essere nella "modalità normale" predefinita in vi. genere:Legend

Passaggio 2: ~/legend_header.txtaggiungere il contenuto di dove si trova il cursore.


0

Uso questo comando nel mio .vimrc per compilare ed eseguire il codice c:

:command Gcc !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; chmod o+x $1; $1

, ma per le tue esigenze potresti mettere:

:command Gdb !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; gdb $1

Puoi essere sicuro che il nome del file exec sarà il nome sorgente senza estensione .c.

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.