[英]emacs: org-mode not automatically invoked for .org files
直到昨天,重新启动emacs会自动识别.org文件并在查看.org缓冲区时切换到org-mode。 现在,我必须在每个文件上调用Mx组织模式。 最初,每个.org模式现在都处于“基本”模式。
我的〜/ .emacs文件包含:
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) ; not needed since Emacs 22.2
(add-hook 'org-mode-hook 'turn-on-font-lock) ; not needed when global-font-lock-mode is on
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)
(put 'downcase-region 'disabled nil)
我正在Gnome Ubuntu 12.04 LTS下运行emacs 23.3.1。
我不知道emacs是否在12.04中得到了更新,但是我确实在之前不小心运行了xemacs。
〜/ .emacs文件中的其他与组织模式相关的行是,看来换行符未保留在堆栈溢出中,因此我将省略它们。
我想我知道了。 我使用桌面保存。 我认为xemacs使用基本模式将所有的org文件保存为桌面保存(退出时)(因为我没有在xemacs中设置org模式-我真的应该卸载它)。 在我的.emacs-desktop文件中,组织文件以“基础”模式列出。
在某些组织文件中打开组织模式后,已删除的.emacs-desktop文件运行Mx桌面保存。 我打开了org-mode的那些.org文件在org-mode中以emacs打开,而当我重新启动emacs时,那些我没有访问并激活org-mode的文件仍处于基本模式。
有没有办法在缓冲区列表中选择多个文件并一次更改它们的模式?
要更改多个缓冲区的模式,请使用dolist
over (buffer-list)
进行迭代,可能首先使用cl-remove-if-not
过滤该列表。 对于每次迭代,将with-current-buffer
与缓冲区名称一起使用,然后调用mode函数(例如(org-mode 1)
):
(100%未经测试。)
(defun org-them ()
"Put BUFFERS in Org mode."
(interactive)
(dolist (buf (cl-remove-if-not #'SOME-TEST (buffer-list)))
(with-current-buffer buf
(org-mode 1))))
例如,SOME-TEST可能要求最后修改日期比某些截止日期更新。 或者,您可能只对文件缓冲区感兴趣-例如,其buffer-file-name
与诸如\\\\.org\\'
等正则表达式匹配的buffer-file-name
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.