2010-01-28 18 views
50

Ho usato VIM per 10+ anni, ma mai veramente nello scripting VIM (sempre sottolineando soggettivamente che si trattava di un'area in cui VIM era più debole di Emacs).Buona guida su VIM Scripting?

Recentemente, la realizzazione "in uno script VIM, posso eseguire comandi in modalità normale" mi ha spinto a "a-ha" e all'improvviso ho iniziato a capire perché parti dello script VIM sono come sono.

normal ma10jd'a20kp 

è molto più elegante rispetto

Marker m = currentLocation(); 
advanceLines(10); 
Buffer b = delete(currentLocation(), m); 
advanceLines(-20); 
insertBuffer(b); 

Ora domanda è - che cosa è una buona risorsa per imparare lo scripting vim da?

Grazie!

risposta

50

Il miglior consiglio che posso dare è che si legge:

:help usr_41.txt 

che vi darà una buona panoramica delle nozioni di base. Quindi trova alcune cose che vuoi fare e crea funzioni per loro. Mentre lo fai, fai un uso intensivo di:

:help function-list 

per avere un'idea di cosa sono tutte le funzioni integrate. La maggior parte di esso è abbastanza simile ad altri linguaggi di scripting (anche se una sintassi più dura), quindi qualsiasi esperienza di manipolazione del testo in Python o qualsiasi altra cosa sarà utile.

Inoltre, guarda su vim scripts page e Google per ottenere esempi di script esistenti per espandere le tue conoscenze.

Infine (e probabilmente la cosa più importante), non abbiate paura di chiedere su stackoverflow o Vim mailing list e ci sarà un sacco di supporto per eventuali problemi che potreste avere.

14

Sono in una situazione simile. È ancora nella mia lista "da leggere", ma ho appena trovato Scripting the Vim editor oggi. Gli articoli da DeveloperWorks di IBM sono generalmente molto buoni, quindi probabilmente vale la pena di provarlo.

+2

Ho fatto un po 'di vimscript oggi e la guida DevWorks IBM è stato grande, ma ho iniziato con Parte 1. (I collegamenti risposta al punto 3.) http://www.ibm.com/developerworks /linux/library/l-vim-script-1/index.html –

+0

Mille grazie per l'articolo, @RichardMichael - questo è esattamente il tipo di materiale di lettura che ho cercato per tutto il giorno! –

14

Al ti ha dato un good answer. Vorrei anche aggiungere vim.wikia che ha alcuni suggerimenti relativi alla tua domanda.

Su una nota a margine.

Non direi che ma10jd'a20kp è più elegante. Vedo i seguenti problemi:

  • è abbastanza difficile da mantenere (? Che cosa succede se il numero di linee diventa un parametro),
  • gente piace ignorare le chiavi non hanno mai imparato ad usare (questo potrebbe essere fissato con un sbattuto :normal!),
  • alcuni comandi normale modalità hanno un comportamento anomalo sul lato caso (come <esc> quando il cursore si trova sulla prima colonna),
  • scombina marchio un, e un registro anonimo - altri script, o anche l'utente può aspettarsi che i loro valori non siano alt ereditato dal tuo script.
+3

+1: ho letto male il post originale come "è meno elegante di" come pensavo fosse chiaro! Altrimenti avrei commentato la linea ': normal' non mantenibile. Tendo ad usare ': normal' solo quando non riesco a trovare un buon modo per farlo con i costrutti di scripting. Immetti i tasti uno alla volta manualmente o scrivi una funzione adeguata che può essere mantenuta. – DrAl

Problemi correlati