2012-05-23 10 views
5

Eventuali duplicati:
Aliasing a command in vimvim creazione di alias per frequentemente comando utilizzato

quindi devo modificare i file wscript WAF molto. Ogni volta che eseguo questo comando per impostare il tipo di file

set filetype=python 

c'è un modo per impostare un piccolo alias per il comando di cui sopra? Quindi posso solo andare in modalità EX e digitare "py" che fa la stessa cosa.

+0

io sto cercando un modo per fare questo permanente, ho provato ": comando cmd cmd_alias', ma viene a mancare –

+1

@VihaanVerma: familiarità con vimrc? Controlla se non lo sei. –

+1

Questo * non * è un duplicato della domanda suggerita. Ha alcune somiglianze ma è abbastanza diverso, specialmente nella soluzione ottimale di un autocmd, che sta rispondendo all'intento piuttosto che la domanda come formata: –

risposta

6

Se ho capito bene la tua domanda, il seguente aggiunto al vostro .vimrc shoud funziona

autocmd BufRead,BufNewFile *.waf set filetype=python 

Se si tratta di un particolare nome di file come wscript, questo funziona anche:

autocmd BufRead,BufNewFile wscript set filetype=python 

Se è possibile si basano su un'estensione o un nome file è possibile aggiungere una modeline nella parte superiore o inferiore del file

# vim: set filetype=python : 

Vedere :help modeline per ulteriori informazioni.

Ma è un po 'brutto perché devi modificare il file, e se stai lavorando in una squadra, può essere problematico.

+0

Suppongo che il comando precedente dipenda dall'estensione del file ".waf" .I file wscript nel mio caso non hanno un'estensione ".waf" –

+0

Questo mi fa anche chiedere se vim memorizza una cronologia di comandi. –

+0

Basta cambiare il ' * .waf' parte nella risposta di Xavier per soddisfare le tue esigenze – romainl

6

Non si desidera passare alla modalità Ex. Quello che vuoi andare è Command-line mode.

command! Py set filetype=python 

fa esattamente ciò che si vuole: si digita :Py<CR> di cambiare il tipo di file a python.

Si può anche rendere più veloce con un normale mappatura modalità:

nnoremap <F11> :set filetype=python<CR> 
+1

'comando! Py: exec ('set filetype = python') '!? Questo dovrebbe essere solo il comando! Py set filetype = python'. Nel tuo comando, ':' e le parentesi sono ignorate; sta usando il comando ': execute' per ottenere la stessa cosa ... non è una funzione. –

+0

Risposta corretta. Grazie Chris. – romainl

+0

Ma questo alias viene cancellato non appena si esce dal file. Voglio evitare il tasto F11, quindi ho messo il comando "command! Py set filetype = python" e funziona! : D –