Questions tagged «elisp»

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


2
获取组织链接以自动插入链接描述?
问:如何获得自定义org链接功能以自动插入描述? 我想org将指向文件的链接存储在dired缓冲区中,但更希望链接描述为文件名没有路径,而不是报告完整路径,即: file:~/the/full/path/myfile.ext ; default, but no thanks myfile.ext ; what I want 现在:对org-store-link来自的链接dired进行硬编码以提供默认值。相反,我编写了一个自定义函数(从硬编码函数中复制)并将其添加到org-store-link-functions: (defun dired-store-link () (when (derived-mode-p 'dired-mode) (let ((file (dired-get-filename nil t))) (setf file (if file (abbreviate-file-name (expand-file-name file)) default-directory)) (org-store-link-props :type "dired" :link file :description (file-name-nondirectory file)) file))) (add-to-list 'org-store-link-functions #'dired-store-link) 到目前为止,一切都很好,并且可以按预期工作,但是有一点: org-insert-link使用内置的默认行为进行调用时,它只是插入链接而无需询问我任何描述。 当org-insert-link使用我的自定义函数进行调用时,它会提示我输入说明(正确地使用存储在:description属性中的文件名填充该说明)。 我希望每次都不会提示您输入描述,而是希望org-insert-link使用:description自定义函数集的值。 我如何说服自动org-insert-link使用:description而不提示我呢?
11 org-mode  elisp 

2
无输入时如何使用?
从文档字符串: 只要没有等待输入,就执行BODY。 如果输入到达,则结束BODY的执行,并while-no-input返回t。退出会使它返回nil。如果BODY完成,则while-no-input返回BODY产生的任何值。 如果我理解正确,则此宏允许我(尝试)执行大量计算而不会挂起接口。我肯定会觉得这是一个吸引人的概念,但是我想知道什么时候在实践中有用。 似乎可以随时中断计算,没有关于发生位置的信息,也没有以后恢复它的简便方法。这让我觉得毕竟可能没有那么有用... 有使用while-no-input宏的推荐方法吗? 有没有在野外使用此宏的示例用法?

1
这是为了什么?
例如在定义中-first我们有: (--first (funcall pred it) list)) 自然,“ it”的含义很难用谷歌搜索或在手册中搜索。
11 elisp  dash.el 

1
如何确定宏的变量作用域?
采取以下示例宏(在中定义)macro.el。 (defmacro some-macro (&rest body) `(let ((some-variable 1)) ,@body)) 并采取以下功能,在不同的文件中定义,function.el。 (defun some-function () (some-macro (do-something))) 当function.el被字节编译,将some-variable在词汇或动态绑定的约束? 我了解这取决于文件是否使用-*- lexical-binding: t; -*-,因此我的问题专门针对以下情况: 如果function.el使用词法绑定,但macro.el不使用。 如果macro.el使用词法绑定,但function.el不使用。 如果some-var在内部声明了全局变量(使用defvar),会有所不同function.el吗?如果是这样,我在那里的情况特别感兴趣也没有。


3
如何将给定文本环绕区域
我经常遇到需要在区域周围应用文本的情况。对于HTML和简单案例,已经有用于此的库。但是一般情况呢?我想问我要在该区域的开始和结束处插入什么。

3
Emacs函数将任意ORG属性转换为任意字符串(即LaTeX标签)吗?
我有许多文档作为具有CUSTOM_LABEL属性的组织文件,例如 * Introduction :PROPERTIES: :CUSTOM_LABEL: AP 1 :END: 在这种情况下,需要将文件导出为LaTeX,并将每个文件翻译CUSTOM_LABEL为\label{marker}。上面的示例应转换为\label{AP 1}。 我已经知道如何在导出时调用自定义函数,但是我不够熟练,无法编写defun来执行该特定转换,即CUSTOM_LABEL->\label{} 如何能在defun函数中注入custom_label作为\label{}写? 我什至只喜欢一些伪代码或一些指针。 我在这里而不是在其他地方问这个问题,因为这是一个Emacs问题,因为我彻底搜索了组织模式手册,并且该功能目前不可用。 在导出时转换特定属性(LaTeX,HTML或任何其他格式)的通用函数会更好。 谢谢。

1
如何从函数和变量中检索文档字符串?
我正在尝试编写一个函数,该函数将从匹配文件中的任何sexps中检索文档字符串(def.*)。 我想既能够检索任何函数/宏,也可以检索定义的任何变量。对于变量,我需要文档字符串,而对于任何函数,我还需要参数列表。

3
检索嵌套的assoc列表中的值的最佳方法?
假设我有一个这样的assoc列表: (setq x '((foo . ((bar . "llama") (baz . "monkey"))))) 我想要的价值bar。我可以做这个: (assoc-default 'bar (assoc-default 'foo x)) 但是我真正想要的是可以接受多个键的东西,例如 (assoc-multi-key 'foo 'bar x) 这样的东西是否存在,也许在某个地方的包装中?我敢肯定我会写的,但是我觉得我的Google-fu只是失败了,我找不到它。

1
重命名局部变量重构
是否有一个elisp重构工具可以重命名局部变量和函数参数?我希望能够转向: (defun my-func (s r) ... (use s .. r)) 变成: (defun my-func (string replacement) ... (use string .. replacement)) 使用知道如何查找变量引用的方法。如果不是超级卫生,我还可以。
10 elisp 

4
制定完整阅读集合的尊重排序顺序
要么: (completing-read "test: " '("a" "b" "c")) 要么: (completing-read "test: " '("c" "b" "a")) 按时,会在完成缓冲区中产生相同的结果TAB。如何使其遵守排序顺序?
10 elisp 


1
如何计算框架中的所有窗户?
正如问题所指出的,我想要一个函数,该函数可以计算该框架中当前正在显示的窗口。 所以这: +--------------+-------------+ | | | | | | | *scratch* | *Messages* | | | | | | | | | | +--------------+-------------+ | *Help* | | | +----------------------------+ 会回来 => 3 我在下面启动了一个功能: (defun count-windows () "Count how many buffers are currently being shown." (interactive) )
10 elisp  window  frames 


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.