Qual è la migliore struttura per i modelli di codice per Emacs?[Chiuso]
-
09-06-2019 - |
Domanda
In particolare, qual è il miglior pacchetto di snippet disponibile?
Caratteristiche:
- nuovi snippet facili da definire (testo semplice, input personalizzato con impostazioni predefinite)
- navigazione semplice tra posizioni predefinite nello snippet
- inserimento multiplo dello stesso ingresso personalizzato
- accetta il testo attualmente selezionato come input personalizzato
- multipiattaforma (Finestre, Linux)
- espressioni valutate dinamicamente (codice incorporato) scritte in un linguaggio di programmazione conciso (sono preferiti Perl, Python, Ruby)
- coesiste bene con gli altri pacchetti in Emacs
Esempio di modello di codice, un semplice for
ciclo in C:
for (int i = 0; i < %N%; ++i) {
_
}
È necessario digitare molto per un codice così comune.Voglio invocare un modello di codice o un frammento che inserisce quel codice caldaia per me.Inoltre si ferma (su TAB o altra sequenza di tasti) a %N%
(il mio input lo sostituisce) e la posizione finale del cursore è _
.
Soluzione
Frammenti di TextMate sono la corrispondenza più vicina ma non è una soluzione multipiattaforma e non per Emacs.
La seconda cosa più vicina è sìnippet (screencast mostra le funzionalità principali).Ma interferisce hippie-expand
pacchetto nella mia configurazione e il linguaggio incorporato è EmacsLisp con cui non mi sento a mio agio all'esterno .emacs
.
MODIFICARE:Ho pubblicato la mia risposta qui per consentire la votazione yasnippet
.
Altri suggerimenti
Personalmente utilizzo Dmacro da anni (ftp://ftp.sgi.com/other/dmacro/dmacro.tar.gz).
Eccone una recensione che menziona anche alcune alternative: http://linuxgazette.net/issue39/marsden.html
L'EmacsWiki ha un file pagina dei motori di template.
Di questi, ho usato tempo nel (lontano) passato a cui aggiungere il supporto per la tabella modalità-helper-html, ma non so come sia andata avanti negli ultimi 15 anni.
Aggiungerei il mio voto a favore frammenti di tempo ...facile da configurare, potente (puoi eseguire un'elisp arbitraria nel tuo modello - in modo da poter ridurre in lettere le cose, cercare nomi di file e classi, contare cose, ecc.), impostare il rientro, integrare con le abbreviazioni ...Lo uso molto ;)
Voto per http://cedet.sourceforge.net/srecode.shtml
Ha una sintassi molto pulita e ha accesso all'ambiente del codice tramite Semantic
.
Inoltre è una parte di grandi dimensioni ben supportata CEDET
(che era integrata in Emacs per la serie di versioni 24.x).
AGGIORNAMENTO https://github.com/capitaomorte/yasnippet è anche un potente motore di modelli.Ma utilizza uno schema di denominazione dei file brutto (nome del tuo file === nome del modello) perché non puoi inserire più modelli in un unico file e hai problemi con i set di caratteri nazionali...
Puoi provare una soluzione leggera muban.el
È scritto completamente in Elisp e ha una sintassi molto semplice.