Questions tagged «elisp»

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

2
用于删除缓冲区中所有注释的功能,而无需移动它们以杀死响铃
我需要能够从elisp代码中删除缓冲区中的所有注释。目前,我正在使用: (goto-char (point-min)) (comment-kill (count-lines (point-min) (point-max))) 但是,它comment-kill是一种交互式功能,其主要用途是一次删除一个注释。此外,它还具有令人讨厌的可见副作用,因为它会将杀死的所有注释添加到杀死环中。 是否有功能允许从缓冲区中删除(或杀死)部分或全部注释?

2
窗口位置中的临时文本,没有要修饰/覆盖的文本?
问:如何在屏幕位置的窗口中临时显示文本,而没有文本以显示/叠加? 我熟悉文本属性和覆盖背后的基本概念(另请参见本主题),已经使用了几次,但绝不熟练。我有限的理解是,需要文本来进行调整或覆盖,但是我想知道如何使用窗口中没有任何文本的部分。 这是示例的屏幕截图: 如何将文本临时(临时)放在屏幕快照的红色框中,即文本右边或缓冲区最后一行下方的空白处?

3
有没有更好的方法来处理elisp中的多行文档字符串?
我讨厌elisp(不确定LISP是否一般)处理多行文档字符串的方式。 (defun foo () "This is a multi liner docstring" (do-stuff)) 我确实希望我可以做类似的事情 (defun foo () (eval-when-compile (concat "This is\n" "a multi\n" "line\n" "docstring")) (do-stuff)) 这样缩进是一致的 不幸的是,eval-when-compile不能完成任务。 有人有什么想法吗?

4
如何检查缓冲区是否正在访问文件?
我想检查某些(例如当前)缓冲区是否正在访问文件。我可以说: (if (buffer-file-name) ...) 但它似乎不是很优雅-我感兴趣的只是布尔值,而不是相关缓冲区的实际名称。如果该buffer-file-name函数是用Elisp编写的,我可以查看其源代码以查明它的用途-但它是用C编写的,尽管我可以安装Emacs源代码,但恐怕找不到一个elisp名称。该功能可以检查我到底在哪里。 我需要的是我想根据当前缓冲区的文件名创建一个目录,目前我正在或多或少地这样做: (make-directory (if (buffer-file-name) (file-name-base) "default-dir")) 那么,Elisp惯用的方式是什么呢?
9 elisp  buffers  files 

2
更好的调试崩溃的Emacs?
虽然从Finder启动Emacs(24.3.93.1)可以正常运行,但是如果启动了终端版本,则: /Applications/Emacs.app/Contents/MacOS/Emacs -nw Emacs崩溃: Fatal error 11: Segmentation fault[1] 51512 abort /Applications/Emacs.app/Contents/MacOS/Emacs -nw。 看来问题是由init.el中的一行引起的, (set-face-attribute 'default nil :font "Menlo-16") 如果将该行注释掉,则Emacs的终端版本也将正常启动。 为了查明崩溃原因,我花了几个小时(将init.el减少一半)。 我知道,无论如何,Emacs都将继承终端应用程序中指定的任何字体和字体大小(基本上,该行在cli中没有意义。) 一般来说,是否有更好的方法来调试崩溃的Emacs?也许使用某种cli调试器可以打印出更具描述性的消息? 为什么该行通过cli导致Emacs崩溃,但如果不是从Finder启动则不会崩溃?

1
什么是钩子?
只是为了澄清...例如,在此文档中: 钩子是一个Lisp变量,其中包含一个函数列表,在某些明确定义的情况下将调用该函数。(这称为运行挂钩。)列表中的各个功能称为挂钩的挂钩功能。例如,挂钩kill-emacs-hook在退出Emacs之前运行。 我认为这是说有一个变量(符号)kill-emacs-hook,该变量代表一组“挂钩函数”的列表,这些挂钩函数将在kill-emacs-hook评估时运行,从而执行这些功能。正确?然后 (add-hook 'text-mode-hook 'auto-fill-mode) 除了已存在的内容外,还会添加auto-fill-mode到该列表text-mode-hook中。好。现在这个 (defcustom text-mode-hook nil "Normal hook run when entering Text mode and many related modes." :type 'hook :options '(turn-on-auto-fill flyspell-mode) :group 'wp) 似乎我们正在创建或更改text-mode-hook。我现在对钩子的性质及其与钩子的关系感到困惑defcustom。我的逻辑选择是,此代码创建的变量text-mode-hook是“类型”(不知道elisp中的类型是什么意思)hook。确实,这是否应该是钩子的最初创建text-mode-hook?如果是这样,“选项”是怎么回事?是那些所谓的钩子函数,还是其他?
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.