Question

Quelqu'un peut-il me donner un exemple du monde bonjour pour un mode majeur dans emacs? Je suppose que c'est une question débutant, encore que j'aime vraiment écrire un mode majeur, à la fois pour apprendre emacs et elisp, pour pouvoir utiliser la personnalisation au maximum.

Ce que je l'ai fait jusqu'à présent (et travaille):

  • a écrit un exemple de fichier-mode.el et le mettre dans un zézaiement dir
  • appelé emacs (require 'sample-mode)
  • a écrit quelques Defuns en elle et a fourni à la fin (provide 'sample-mode)

Mais encore, il ne semble pas être activé , je ne peux pas l'appeler avec M-échantillon mode.

Alors, comment faire? Et quelqu'un peut me donner une très très simple Bonjour tout le monde comme exemple de travail?

Était-ce utile?

La solution

Ok, après un peu plus googler je suis au moins une étape furhter:

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

puisque la fourniture ne définit pas le mode que je pensais d'abord .. Ce que je trouve sur:

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

Un site très très agréable pour les amateurs emacs.

Avec l'aide de: je me suis fait un exemple HelloWorld maintenant: Il est un (aussi petit que possible) le mode Csharp. Je l'ai utilisé Euler1 comme exemple plutôt que HelloWorld. Les fichiers que vous devez savoir sur sont:

  • le fichier mode sera appliqué sur Euler1.cs
  • les emacs
  • et bien sûr le mode lui-même

Depuis un pic vaut la peine, au moins un groupe de mots: tous les fichiers sur 1 écran:

text alt

Mais depuis cette belle image semble disparaître la moitié du temps (tout le monde un indice Ouvrir dans un nouvel onglet apporte toujours sur, et l'URL est ok?) Quelques mots trop :-):

  1. Le mode: 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. Les emacs, qui rend les .cs fichiers ouverts en mode droite:

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

Et c'est tout: le son lui-même est cs-code inutile, parce que ce ne sera pas montrer l'effet de coloration des mots-clés. Pour voir que voir la photo, ou ouvrir l'image dans un autre onglet / fenêtre.

Cheers, ph

Autres conseils

il y a plusieurs exemples dans le comme celui-ci . Je peux également vous recommander plusieurs livres Emacs:

  • Apprentissage GNU Emacs (le meilleur IMHO)
  • Écriture GNU Emacs Extensions
  • la référence GNU Emacs Lisp officiel / manuel

Eh bien, commençons par cette réponse , qui utilise define-generic-mode .

il avec Flesh certains personnages de commentaire comme: /* */, certains mots-clés: etc. hello hi, re-utiliser le visage de la réponse initiale, une extension de fichier .hello, et un appel de fonction faire une personnalisation plus poussée.

Il y a la ligne supplémentaire pour obtenir travail autoloading, mais vous devez générer le fichier loaddefs.el. C'est plus avancé que Bonjour tout le monde.

Et, vous vous retrouvez avec ceci:

(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."))

Le manuel Elisp introduit les modes principaux assez bien, et il comprend un noeud qui présente « bonjour monde » Exemples . Au moins qui est l'intention, je pense.

Ces exemples pourraient ne pas couvrir tout ce que vous recherchez. Dans ce cas, pensez à demander ce que vous pensez manque qui aiderait les utilisateurs plus. Pour ce faire, utilisez M-x report-emacs-bug (qui est pour les demandes d'amélioration aussi).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top