2012-06-05 12 views
5

Sono stato un utente avido di Vim e recentemente mi sono interessato al suo funzionamento.Qualche tutorial su come creare un editor simile a Vim?

Qualcuno sa se c'è un tutorial che tratta le basi della conversione di un normale editor di testo per avere capacità Vi/m? Il linguaggio di programmazione non ha importanza; Sono un programmatore abbastanza esperto.

ho trovato le seguenti risorse finora:

+4

Suona come avete risposto alla tua domanda nella vostra domanda a me. ;) – Almo

+0

@ Almo, =). Sì, ho passato molto tempo a cercare di trovare implementazioni semplici esistenti. Spero che altre persone possano trovare tutorial migliori dei miei. ;-) – sivabudh

risposta

1

Come un utente esperto Vi si sa che in primo luogo ci sono due aspetti chiave che lo rendono diverso dall'altro (vis UAL) redattori: - modalità di ingresso Esc e : i modi comuni di passaggio tra di loro - mappatura della tastiera contestuale, in cui più pressione di un tasto si accumulano un comando

ho visto un numero di persone aggiungere un sottoinsieme delle mappature della tastiera Vi ad un editor esistente, e mentre è possibile ottenere alcune mappe mappate sensibilmente, ottenere un'emulazione richiederebbe probabilmente una sostituzione piuttosto estesa della gestione della tastiera di un editor esistente.

Ovviamente le mappature della tastiera sono abbastanza ben documentate, quindi non dovrebbe essere troppo difficile da implementare.

La prossima cosa sarebbe quella di implementare la modalità di comando. Dipende dall'editor che si sta modificando per implementarlo, ma immagino di cambiare lo stato attivo su un widget/controllo permanente in fondo. Una volta focalizzato su quel controllo, puoi facilmente gestire l'input, quindi analizzare ed elaborare il comando quando viene premuto return.

La sintassi di base della modalità di comando è ereditata dagli editor di ed/sed in modo da poter consultare le implementazioni (o documenti) su questo.

Tutto sommato, non è un lavoro enorme ottenere un'implementazione superficiale che assomiglia molto a vi. Ma farlo davvero bene è un'altra questione. Ti suggerirei di prendere seriamente in considerazione l'utilizzo dell'eccellente Vim (http://www.vim.org/).

5

penso che prima si deve sapere che VI/VIM sono in realtà due parti. Uno è l'editor visuale chiamato vi e l'altro è l'editor one-liner chiamato ed.

realtà vi si chiama editor visuale perché è costruito in cima ad ed (editore).È la parte visiva della modalità ex, in cui è possibile visualizzare e modificare il testo, per questo il nome è vi da visual.

La modalità ex è in realtà una replica/rappresentazione dell'editor ed. È sufficiente attivare ed sul terminale e utilizzare i comandi Vi ex predefiniti. Il visual, sostituire e inserire le modalità vengono utilizzate da vi. Per esempio ci sono diversi comandi che sono in realtà facendo la stessa cosa, ad esempio:

:100 // Go to line 100, ex mode (ed) 
100G // Go to line 100, normal mode(vi) 

:.,5d // Delete 5 lines, ex mode (ed) 
5dd // Delete 5 lines, normal mode (vi) 

e così via ...

Per ulteriori informazioni su questo ho raccomandato di leggere il libro eccellente Learning the vi and Vim editors da O' Reilly:

alt text

+0

Wow, fatto interessante su 'vi' e' ed'. Grazie per la raccomandazione Credo di avere il libro. Dovrò controllare la mia libreria. =) Gli darò la possibilità di educarmi di più su Vi. – sivabudh