如果我在基本模式下的緩衝區中有一個Python(或任何其他語言)文件,是否有一個命令,我可以使緩衝區自動檢測它應該在什麼語言,並切換因此?在Emacs中自動檢測語言
2
A
回答
6
簡單的答案是:Alt鍵 + X正常模式進入
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.
只會工作,不過,如果在緩衝區一些提示(例如#!/bin/python
在文件頂部)或緩衝區支持的文件名(如果有的話)有一個python擴展名(還有其他方法;請參閱上面的定義以及關於set-auto-mode
的更多信息)。
如果您知道您想要的模式,您還可以專門設置模式。我有這個在我的.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)
有了它,我可以做我的設置主要模式CPerl與視圖模式的次要模式:F3 米pF3中號v
1
嗯,那不是上面這麼簡單的答案。
更簡單的答案是:Emacs只學習瞭如何識別22.1版本(2007年6月)中的Python文件。如果您使用的是較舊的emacs,那可以解釋它。使用較新的版本,至少如果文件名以「.py」結尾,它應該正常工作。
相關問題
- 1. CodeMirror - 自動檢測語言
- 2. Emacs自定義語言自動縮進
- 3. 瀏覽器自動檢測語言
- 4. highlight.js不會自動檢測語言
- 5. 機器人自動檢測語言
- 6. Zend翻譯自動檢測語言嗎?
- 7. 自動檢測用戶的語言
- 8. emacs自動完成去語言
- 9. 語言檢測
- 10. 語言檢測
- 11. 在emacs中設置語言
- 12. 語言檢測器
- 13. ANN:語言檢測
- 14. 檢測Facebook語言
- 15. Solr語言檢測
- 16. CLI語言檢測
- 17. 檢測iOS語言
- 18. Chrome:自動檢測拼寫檢查語言
- 19. Java中的文本的自動檢測語言(Android)
- 20. Nutch Solr自動語言檢測 - 特定於語言的字段不出現
- 21. Emacs。拼寫檢查「飛」2種語言
- 22. 在java中檢測瀏覽器語言
- 23. 在android中檢測文本的語言
- 24. 在html中檢測系統語言環境(語言)
- 25. 移動設備上的語言檢測
- 26. 從文本文件自動讀取時檢測語言
- 27. 的Python KeyError異常:「」自動語言檢測
- 28. 自動檢測語言並用javascript顯示正確的一個
- 29. Xamarin Forms本地化:語言被自動檢測到?
- 30. 自動檢測語言和重定向用戶
您可以使用'auto-mode-alist'通過文件擴展名設置模式,至少返回到版本18.x,IIRC(18.58或18.85是我記得使用的第一個版本)。 – 2010-03-07 05:04:49