Questions tagged «elisp»

与其他语言(尤其是与其他Lisp方言相比)有关Emacs Lisp作为一种语言的问题。也就是说,它是关于语言本身的问题。*请勿使用*关于*使用* Emacs Lisp的问题。Emacs Lisp是Emacs编辑器所基于的脚本和编程语言。



5
跨属性列表映射功能?
问:跨属性列表映射函数的惯用方式是什么? 各种映射函数(mapcar和族)在诸如列表的序列上映射函数。在处理属性列表时,即试图在列表中包含的每个属性之间进行映射(从第一个元素开始的所有其他元素)时,如何使用这些功能?在我看来,映射功能将需要成对访问元素而不是单个元素的列表。 作为一个玩具示例,如何获取属性列表并收集所有属性值?如果它是一个关联列表,它将非常简单: (mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c) 我敢肯定这可以通过循环来完成,但是这似乎有点费力,我想知道是否还有一种更惯用的方式来做到这一点。
17 elisp  mapping 

1
进行中断评估并在emacs-lisp调试器中观察当前堆栈?
如果某些emacs-lisp函数(例如主模式钩子)花费的时间比预期的要长,我有时想中断它并查看当前堆栈。理想情况下,我还希望能够在调试器中查看变量值,等等。我不是在谈论我故意在emacs-lisp模式下执行的代码,而是在emacs的正常操作中执行的代码。 如何直接在emacs中中断emacs-lisp代码的执行?我不知道我需要调试哪个功能。 例如,键入C-g,虽然它中断执行,但也告诉我什么功能被中断。
17 elisp  debugging 

2
加载文件和加载之间的区别
我浏览了两个函数的文档,但是它们似乎并没有散布太多信息。它们之间的实际区别是什么,除了事实load是C源代码中的内置函数,而load-file是交互式列表编译函数。 init.el由于两者似乎都在做相同的工作,因此推荐使用什么功能?
17 elisp  functions 

1
如何将组织模式缓冲区的顶级标题导出到单独的文件?
如何将org-mode缓冲区的每个顶级标题导出到以相应CUSTOM_ID+(经过消毒)标题的值命名的单独文件? 假设一个缓冲区包含: * Title of Heading 1 :PROPERTIES: :CUSTOM_ID: fibrillogenesis :END: Suspendisse potenti. Mauris ac felis vel velit tristique imperdiet. ** Sub-Heading Nullam rutrum. * Another Title for Heading 2 :PROPERTIES: :CUSTOM_ID: mitochondrion :END: Mauris mollis tincidunt felis. Sed bibendum. 最终结果将是一个目录,其中包含两个文件,两个顶级标题中的每个标题一个,在导出时选择格式(HTML,LaTeX等),并具有以下文件名和内容: 第一个导出标题的文件名: fibrillogenesis-title-of-heading-1.[ext] 导出的内容,对应于原始的第一个顶级标题: * Title of Heading 1 :PROPERTIES: …

4
如何缩进对齐的关键字?
可能受Clojure影响,我更经常使用属性列表作为数据结构。Emacs大多数时候都这样缩进他们, `(:token ,token :token-quality ,quality) , 虽然这是我想要的 `(:token ,token :token-quality ,quality) . 所以,我想知道是否有人已经解决了这个问题?
17 elisp 

1
什么是Emacs软件包开发的好工具?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 我们已经有一个专门用于测试的工具的问题,但是实际编写代码又如何呢?您发现哪些软件包可以加快您的开发速度?您使用哪些辅助工具快速轻松地导航和了解您的项目?

1
Emacs Lisp评论约定
《 Emacs Lisp参考手册》的附录D.7提到了一些注释提示: ;内嵌注释应使用单分号()。 ;;行注释应使用双分号()。 三元分号(;;;)应该用于“应将其视为大纲次要模式的标题的注释”。 ;;;;程序的主要部分的标题应使用四分号()。 单分号和双分号的用例很明确,但在三分号和四分号之间似乎没有清晰的界限。 特别是,由Emacs提供的Emacs软件包的标准文档auto-insert使用了三分号,从不四分号,即使对于最高级别的标题,例如文件名和主要部分。请参见下面的示例: ;;; test.el --- A test file. -*- lexical-binding: t; -*- ;; Copyright (C) 2016 ;; Author: John Smith ;; Keywords: ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General …
17 elisp  comment 

3
Elisp正则表达式^和$ vs`和'
本手册介绍了regexp特殊字符^和$。就像我所知道的大多数正则表达式方言一样,它们似乎与字符串的开头或结尾匹配。但是,我也发现有`和'字符可用。根据此处的说明,它们似乎也匹配字符串的开头或结尾。有人可以解释这些特殊字符之间的区别,并举例说明何时使用它们吗? 当我查看的值时auto-mode-alist,它们似乎可以互换使用以匹配字符串的结尾: (... ("\\.scss\\'" . scss-mode) ("\\.ya?ml$" . yaml-mode) ...)

3
如何获取列表中的元素编号?
问:如何获取列表中的元素编号? nth从列表中获取元素编号n: (nth 2 '(a b c d)) ; => c 我想相反:获取给定元素的元素编号: (some-function 'c '(a b c d)) ; => 2 我可能已经错过了,但是是否存在这样的功能?一个人怎么做?
16 elisp 

3
如何创建:keywords?
问:如何创建和使用:keywords? 考虑一下(显然是天真的)尝试访问以下玩具列表: (setf alist '((:key-1 "Key no. 1") (:key-2 "Key no. 2"))) (assq :key-1 alist) ; => (:key-1 "Key no. 1") (assq (make-symbol ":key-1") alist) ; => nil 第一个键可以按预期工作,但第二个键则不能。在没有明显make-keyword功能的情况下,如何创建和使用关键字? 原始动机:我需要将字符串转换为查找键,该键是我可以使用的符号put。 在提出这个问题的过程中,我至少得到了一部分答案,我将分别发布。我希望有比我的人更聪明的想法可以改善它。
16 elisp  symbols 

1
如何知道缓冲区的可见/聚焦状态?
我正在编写一个与外部进程进行对话的扩展,因此可以在缓冲区不集中时降低“嘿”消息的请求量。 那么,什么是最好的识别方法: 当我的缓冲区可见并集中时 当我的缓冲区可见但不集中时 当我的缓冲区既不可见也不集中时
16 elisp  buffers  focus 

2
如何检测是否在配对中?
问:有没有一种通用的方法来检测点是否在匹配的字符对内? 也就是说:是否有一个通用的谓词功能(或某些功能)可以确定点是在匹配对之间还是某些任意选择的字符之间?我正在考虑一种可以参考t以下情况的评估方案!: "!" (quotes in general) ``!'' (LaTeX quotes) $!$ (LaTeX math) (!) (lisp parens) *!* (org emphasis) 编辑:syntax-ppss似乎是一个很好的起点,但对我来说尚不清楚如何使它适应多字符匹配对(例如``LaTeX引号'',甚至是matched <b>html tags</b>)。我想知道是否有一个通用的解决方案,或者是否需要一个专用的解析器。
16 elisp  syntax 

3
如何使用Emacs Lisp找到可执行文件的路径?
我当前的用例是查找Cask可执行文件的位置(它可以安装在至少两个位置,并且存在一个与此相关的问题)。 我需要这样的酒桶: (require 'cask "~/.cask/cask.el") 但是我需要找到正确的路径cask.el,据我所知,最简单的方法是找到可执行文件。 我怎样才能做到这一点?
16 elisp  files  cask 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.