如何获得Emacs 24中可用主题的列表?

myT*_*nal 1 emacs elisp

我知道你可以做

M-x load-theme RET
Run Code Online (Sandbox Code Playgroud)

并获取可自动完成的可用主题列表,您可以选择其中一个。

我正在寻找的是一种通过Emacs LISP获取此主题列表的方法,因此我可以使用自定义键绑定来循环浏览它,而不必查看所有可用主题并手动切换到一个主题。

Chr*_*sen 5

该功能custom-available-themes应为您提供主题列表。


我不知道这是“浮出水面”的,但是一旦人们熟悉Emacs Lisp代码,Emacs便是一个相当容易发现的系统。这是我找到此答案的方法:

  1. 启动了一个非定制的Emacs实例:

    % emacs -q
    
    Run Code Online (Sandbox Code Playgroud)

    我想确保我的常规自定义设置(已安装的软件包等)不会干扰我的调查。

  2. 由于清单在自动完成之后可用M-x load-theme RET,因此我开始使用该功能:

    C-h f load-theme RET
    
    Run Code Online (Sandbox Code Playgroud)
  3. 切换到*Help*缓冲区并load-theme在in 的定义链接上单击Enter custom.el

  4. 扫描的定义,load-theme查看是否正在安排自定义完成处理程序。它的(interactive …)形式使用function completing-read,并为其提供以下形式的输出:

    (mapcar 'symbol-name (custom-available-themes))
    
    Run Code Online (Sandbox Code Playgroud)
  5. 快速C-h f RETcustom-availabe-themes验证,这是可用的主题列表的来源。