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

如何在Emacs 24中获得可用主题的列表?,emacs,elisp,Emacs,Elisp,我知道你能做到 M-x load-theme RET 并获取可用于自动完成的主题列表,您可以从中选择一个 我正在寻找的是一种通过Emacs LISP获取此主题列表的方法,这样我就可以使用自定义键绑定在其中循环,而无需查看所有可用主题并手动切换到一个主题。函数自定义可用主题应该会提供主题列表 我不知道这是“在我的头脑中”,但一旦人们在Emacs Lisp代码中轻松地挖掘,Emacs是一个相当容易发现的系统。下面是我如何找到这个答案的: 启动了Emacs的非自定义实例: % emacs -q

我知道你能做到

M-x load-theme RET
并获取可用于自动完成的主题列表,您可以从中选择一个


我正在寻找的是一种通过Emacs LISP获取此主题列表的方法,这样我就可以使用自定义键绑定在其中循环,而无需查看所有可用主题并手动切换到一个主题。

函数
自定义可用主题
应该会提供主题列表


我不知道这是“在我的头脑中”,但一旦人们在Emacs Lisp代码中轻松地挖掘,Emacs是一个相当容易发现的系统。下面是我如何找到这个答案的:

  • 启动了Emacs的非自定义实例:

    % emacs -q
    
    我想确保我的正常定制(安装的软件包等)不会干扰我的调查

  • 由于列表在
    M-x load theme RET
    之后的自动完成期间可用,因此我从该函数开始:

    C-h f load-theme RET
    
  • 切换到
    *帮助*
    缓冲区,在
    custom.el
    中点击指向
    加载主题定义的链接上的Enter键

  • 扫描
    load theme
    的定义,查看它是否正在安排自定义完成处理程序。它的
    (交互式…
    表单使用功能
    完成读取
    ,并提供此表单的输出:

    (mapcar 'symbol-name (custom-available-themes))
    
  • 关于自定义可用主题的快速
    C-h f RET
    验证了这是可用主题列表的来源


  • “自定义可用主题”功能应提供主题列表


    我不知道这是“在我的头脑中”,但一旦人们在Emacs Lisp代码中轻松地挖掘,Emacs是一个相当容易发现的系统。下面是我如何找到这个答案的:

  • 启动了Emacs的非自定义实例:

    % emacs -q
    
    我想确保我的正常定制(安装的软件包等)不会干扰我的调查

  • 由于列表在
    M-x load theme RET
    之后的自动完成期间可用,因此我从该函数开始:

    C-h f load-theme RET
    
  • 切换到
    *帮助*
    缓冲区,在
    custom.el
    中点击指向
    加载主题定义的链接上的Enter键

  • 扫描
    load theme
    的定义,查看它是否正在安排自定义完成处理程序。它的
    (交互式…
    表单使用功能
    完成读取
    ,并提供此表单的输出:

    (mapcar 'symbol-name (custom-available-themes))
    
  • 关于自定义可用主题的快速
    C-h f RET
    验证了这是可用主题列表的来源


  • 凉的我在帮助缓冲区中找不到对
    load theme
    定义的引用,但它可能会显示为带下划线的单词
    custom.el
    (可能主题改变了外观?)。我的实例中的全文如下:
    加载主题是“custom.el”中的一个交互式编译Lisp函数。
    custom.el
    位带有下划线,当我将点移动到
    load theme
    中并点击
    RET
    时,它将带我进入
    load theme的定义。这很奇怪,因为在我的缓冲区中,第一条语句中唯一的文本是“load theme是一个交互式编译的Lisp函数”。没有应用任何主题。啊,我还看到,如果我的安装既没有
    custom.el.gz
    文件,也没有
    custom.el
    文件(即,如果我临时重命名它或将它移到一边)。您的Emacs安装是否以某种方式精简,只包含编译的
    .elc
    文件?apt…看起来Emacs Lisp源文件是在Debian派生系统上单独打包的。你可能可以安装来获得它们。酷!我在帮助缓冲区中找不到对
    load theme
    定义的引用,但它可能会显示为带下划线的单词
    custom.el
    (可能主题改变了外观?)。我的实例中的全文如下:
    加载主题是“custom.el”中的一个交互式编译Lisp函数。
    custom.el
    位带有下划线,当我将点移动到
    load theme
    中并点击
    RET
    时,它将带我进入
    load theme的定义。这很奇怪,因为在我的缓冲区中,第一条语句中唯一的文本是“load theme是一个交互式编译的Lisp函数”。没有应用任何主题。啊,我还看到,如果我的安装既没有
    custom.el.gz
    文件,也没有
    custom.el
    文件(即,如果我临时重命名它或将它移到一边)。您的Emacs安装是否以某种方式精简,只包含编译的
    .elc
    文件?apt…看起来Emacs Lisp源文件是在Debian派生系统上单独打包的。您可能可以安装以获取它们。