Si j'ai un fichier Python (ou tout autre langage) dans un tampon en mode fondamental, existe-t-il une commande que je peux utiliser pour que le tampon détecte automatiquement la langue dans laquelle il doit être et permute en conséquence?Détection automatique du langage dans Emacs
Répondre
La réponse est simple: Alt + x-mode normalEntrez
normal-mode is an interactive compiled Lisp function in `files.el'.
(normal-mode &optional find-file)
Choose the major mode for this buffer automatically.
Also sets up any specified local variables of the file.
Uses the visited file name, the -*- line, and the local variables spec.
This function is called automatically from `find-file'. In that case,
we may set up the file-specified mode and local variables,
depending on the value of `enable-local-variables'.
In addition, if `local-enable-local-variables' is nil, we do
not set local variables (though we do notice a mode specified with -*-.)
`enable-local-variables' is ignored if you run `normal-mode' interactively,
or from Lisp without specifying the optional argument find-file;
in that case, this function acts as if `enable-local-variables' were t.
Cela ne fonctionne, cependant, s'il y a des indices dans la mémoire tampon (par exemple #!/bin/python
à le haut du fichier) ou le nom de fichier que le tampon est sauvegardé (le cas échéant) a une extension python (et il existe d'autres façons, voir la définition ci-dessus et set-auto-mode
pour plus d'informations sur ce qu'ils sont tous).
Vous pouvez également définir le mode spécifiquement, si vous savez quel mode vous voulez. J'ai dans mes .emacs:
;;;; ------------------------------------------------------------------------
;;;; --- F3 - multi-purpose prefix keymap
;;;; ------------------------------------------------------------------------
(setq my-F3-keymap (make-sparse-keymap))
(global-set-key [(f3)] my-F3-keymap)
;; --- m -- generic (major) modes ---
(require 'generic)
(require 'generic-x)
;; stolen shamelessly from generic-x Samba mode
(define-generic-mode 'generic-rc-mode
(list ?#)
nil
'(
("^\\s-*\\(.+\\)=\\([^\r\n]*\\)"
(1 'font-lock-variable-name-face)
(2 'font-lock-type-face))
)
(list "\\(/\\.[^/]+rc$\\|\\.rc$\\)" "weblogic[^/\\]*\\.conf\\'" "oc4j[^/\\]*\\.conf\\'" "tomcat[^/\\]*\\.conf\\'")
nil
"Generic RC mode.")
(setq my-F3:m-keymap (make-sparse-keymap))
(define-key my-F3-keymap [(m)] my-F3:m-keymap)
(define-key my-F3:m-keymap [(a)] 'apache-conf-generic-mode)
(define-key my-F3:m-keymap [(b)] 'bat-generic-mode)
(define-key my-F3:m-keymap [(f)] 'fundamental-mode)
(define-key my-F3:m-keymap [(i)] 'ini-generic-mode)
(define-key my-F3:m-keymap [(j)] 'javascript-generic-mode)
(define-key my-F3:m-keymap [(J)] 'java-properties-generic-mode)
(define-key my-F3:m-keymap [(l)] 'emacs-lisp-mode)
(define-key my-F3:m-keymap [(L)] 'lisp-interaction-mode)
(define-key my-F3:m-keymap [(n)] 'nxml-mode)
(define-key my-F3:m-keymap [(p)] 'cperl-mode)
(define-key my-F3:m-keymap [(r)] 'generic-rc-mode)
(define-key my-F3:m-keymap [(s)] 'sgml-mode)
(define-key my-F3:m-keymap [(S)] 'shell-script-mode)
(define-key my-F3:m-keymap [(t)] 'text-mode)
;; --- M -- generic (minor) modes ---
(setq my-F3:M-keymap (make-sparse-keymap))
(define-key my-F3-keymap [(M)] my-F3:M-keymap)
(define-key my-F3:M-keymap [(l)] 'longlines-mode)
(define-key my-F3:M-keymap [(v)] 'view-mode)
(define-key my-F3:M-keymap [(V)] 'visible-whitespace-mode)
Avec ce que je peux mettre mon principal mode de cperl avec un mode mineur de mode d'affichage en faisant: F3mpF3Mv
Hm, ce n'était pas une simple réponse ci-dessus. Une réponse plus simple est la suivante: Emacs n'a appris à reconnaître les fichiers Python que dans la version 22.1 (juin 2007). Si vous utilisez un emacs plus ancien, cela l'expliquerait. Avec les versions les plus récentes, il devrait simplement fonctionner, au moins si le nom du fichier se termine par ".py".
- 1. docview dans emacs: actualisation automatique du contenu dvi
- 2. Détection automatique des filetages suspendus
- 3. Détection automatique du réseau à l'aide de SNMP et .NET
- 4. Détection de l'écriture automatique (crochets de clavier)
- 5. Comment afficher les choix de saisie semi-automatique dans emacs?
- 6. Emacs, Objective-C et saisie semi-automatique
- 7. Détection des paramètres d'archivage automatique/Stockage dans Outlook 2007
- 8. traitement du langage naturel - classificateur Truecaser
- 9. Détection du langage et redirection vers le sous-domaine sur Symfony
- 10. Détection de hauteur à l'aide de la corrélation automatique
- 11. Automatisation du langage naturel?
- 12. Extension du langage C#?
- 13. Rails: Adaptateur de base de données à détection automatique
- 14. Détection automatique de la configuration d'un port série?
- 15. Détection lorsque la saisie semi-automatique est visible
- 16. php - Redirection du langage Seo dans l'index
- 17. Détection automatique d'un nouvel ordinateur connecté au réseau
- 18. Détection du focus d'un contrôle dans Silverlight
- 19. Détection du temps de conception dans NetBeans
- 20. Détection automatique des composants à l'aide des annotations de ressort
- 21. Coller du texte dans emacs sur Macintosh
- 22. Contrôle de l'embellissement du code dans emacs
- 23. Bibliothèque de traitement du langage naturel pour le marquage automatique (.NET)
- 24. Cygwin: Développement du langage d'assemblage?
- 25. Comment arrêter le formatage automatique en mode emacs cperl?
- 26. Désactiver le retour chariot automatique en mode HTML emacs
- 27. L'utilisation de l'extension emacs dans Visual Studio 2010 désactive le retrait automatique
- 28. Détection du navigateur Python/mod_python?
- 29. Localisation automatique du serveur d'un client
- 30. détection du navigateur et addClass
Vous pouvez utiliser 'auto-mode-alist' pour définir le mode via l'extension de fichier, en remontant (au moins) vers la version 18.x, IIRC (18.58 ou 18.85 était la première version dont je me souviens avoir utilisé). –