Domanda

Qualcuno può fornirmi un esempio "hello world" per una delle principali modalità di emacs?Credo sia un principiante domanda, comunque mi piace molto la scrittura di una modalità principale, sia per imparare emacs e elisp, per essere in grado di personalizzazione al massimo.

Quello che ho fatto finora (e funziona) :

  • ha scritto un esempio di file in modalità.el e metterlo in un lisp dir
  • chiamato in .emacs (require 'sample-mode)
  • ha scritto alcuni defuns in esso, e alla fine (provide 'sample-mode)

Ma ancora non sembra essere attivato, Non posso chiamare con M-campione-mode.

Quindi, come fare?E chiunque può fornire me con un molto, molto semplice, Ciao Mondo come esempio di utilizzo?

È stato utile?

Soluzione

Ok, dopo alcuni googling ho almeno un passo in seguito :

(define-derived-mode sample-mode ...) 

dal momento che la fornitura non è definire le modalità di come ho pensato prima..Questo l'ho trovato su :

http://xahlee.org/emacs/elisp_syntax_coloring.html

Un sito molto bello per emacs-amanti.

Con l'aiuto di che :Ho fatto un esempio " hello world anch'io ora :E ' una (la più piccola possibile) Csharp modalità.Ho usato Euler1 come esempio, piuttosto che HelloWorld.Il file è necessario conoscere sono :

  • il file la modalità sarà applicata su Euler1.cs
  • l' .emacs
  • e, naturalmente, la stessa modalità

Dal momento che una foto vale la pena, almeno un mucchio di parole :tutti i file su 1 schermo :

alt text

Ma poiché questa bella foto sembra sparire la metà del tempo (chiunque sia un indizio?Apri in una nuova scheda porta sempre l'url è ok) alcune parole di troppo :-) :

  1. La modalità :cs-mode.el

    (setq myKeywords 
     '(("WriteLine" . font-lock-function-name-face)
       ("public\\|static\\|void\\|int\\|for\\|if\\|class"
    . font-lock-constant-face)))
    
    (define-derived-mode cs-mode fundamental-mode
      (setq font-lock-defaults '(myKeywords)))
    
    (provide 'cs-mode)
    
  2. L' .emacs, che rende .cs file aperto in modo corretto :

;; cs
(require 'cs-mode)
(add-to-list 'auto-mode-alist '("\\.cs\\'" . cs-mode))

E questo è tutto :il cs-code se stessa è inutile lei, causa non mostrare l'effetto di colorare le parole-chiave.Per vedere che vedere la foto, o aprire la foto in un'altra scheda/finestra.

Evviva, ph

Altri suggerimenti

ci sono diversi esempi in giro per il Web come questo.Mi può anche raccomandare diversi Emacs libro:

  • Imparare GNU Emacs (il migliore imho)
  • La scrittura di GNU Emacs Estensioni
  • l'ufficiale di GNU Emacs lisp riferimento/manuale

Bene, cominciamo con questa risposta, che utilizza define-generic-mode.

La carne fuori con alcuni caratteri di commento come: /* */, alcune parole chiave: hello hi ecc.... ri-utilizzare il volto originale di risposta, l'estensione di un file .hello, e una chiamata di funzione per fare un'ulteriore personalizzazione.

C'è la linea aggiuntiva per ottenere caricamento automatico di lavoro, ma è necessario generare il loaddefs.el file.Che è più avanzato rispetto hello world.

E, si finisce con questo:

(make-face 'my-date-face)
(set-face-attribute 'my-date-face nil :underline t)
(set-face-attribute 'my-date-face nil :family "times")
(set-face-attribute 'my-date-face nil :slant 'normal)
(set-face-attribute 'my-date-face nil :height '340)

;;;###autoload
(define-generic-mode hello-world
  '(("/*" . "*/"))                           ; comment characters
  '("hello" "hi" "howdy" "greetings" "hola") ; keywords
  '(("\\([0-9]+/[0-9]+/[0-9]+\\)"
     (1 'my-date-face)))                ; font lock
  '("\\.hello$")                        ; auto-mode-alist  
  '(hello-world-special-setup)          ; function-list
  "An example major mode.
We have comments, keywords, a special face for dates, and recognize .hello files.")

(defun hello-world-special-setup ()
  "Some custom setup stuff done here by mode writer."
  (message "You've just enabled the most amazing mode ever."))

Il Elisp manuale introduce i principali modalità abbastanza bene, e comprende un nodo che presenta "ciao mondo" esempi.Almeno questo è l'intento, credo.

Questi esempi potrebbero non coprire tutto ciò che si sta cercando.In questo caso, prendere in considerazione la richiesta qualunque cosa si pensi è mancante che potrebbe aiutare gli utenti più.Per fare questo, utilizzare M-x report-emacs-bug (che è per le richieste di miglioramento anche).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top