首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有划痕的新框架(文本模式) --关闭,但没有雪茄。。

带有划痕的新框架(文本模式) --关闭,但没有雪茄。。
EN

Stack Overflow用户
提问于 2013-04-26 14:15:55
回答 2查看 213关注 0票数 1

下面的代码只在基本模式下生成新的缓冲区,而我还没有弄清楚如何让新的临时缓冲区在文本模式下自动生成。。。任何帮助都将不胜感激。

代码语言:javascript
复制
(setq initial-major-mode 'text-mode)

(defun new-frame-with-scratch ()
  "Open a new frame with scratch buffer selected"
  (interactive)
  (let ((frame (make-frame)))
    (select-frame-set-input-focus frame)
    (if (get-buffer-create "*lawlist*" )
        (switch-to-buffer "*lawlist*" 'norecord))))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-26 14:35:51

initial-major-mode仅在创建初始*scratch*缓冲区时使用,所以我认为它在这方面对您没有帮助。您必须显式更改新创建的*lawlist*缓冲区中的模式:

代码语言:javascript
复制
(defun new-frame-with-scratch ()
  "Open a new frame with scratch buffer selected"
  (interactive)
  (let ((frame (make-frame))
        (scratch-name "*lawlist*"))
    (select-frame-set-input-focus frame)
    (unless (get-buffer scratch-name)
      (with-current-buffer (get-buffer-create scratch-name)
        (text-mode)))
    (switch-to-buffer scratch-name 'norecord)))

如果您希望在每次调用new-frame-with-scratch时都将*lawlist*缓冲区无条件地设置为text-mode,那么逻辑可以变得更简单。

票数 1
EN

Stack Overflow用户

发布于 2013-04-26 20:43:11

您可以简单地删除您的(if (get-buffer-create "*lawlist*" ),因为如果缓冲区不存在,switch-to-buffer将创建它,如果它创建了它,那么它将调用set-buffer-major-mode。但请注意,initial-major-mode只适用于名为*scratch*的缓冲区,您应该改为(setq-default major-mode 'text-mode)。更简单的方法是显式地调用你想要的主要模式,就像Francesco提出的解决方案一样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16229896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档