Emacs

使用,扩展或开发Emacs的人员的问答

1
记住下级Emacs Lisp模式下会话之间的历史记录
我无法使Emacs记住*ielm*会话之间的缓冲区的历史记录。据我所知,这种历史记录记录在buffer-local变量中comint-input-ring。因此,我在初始化文件中添加了以下表达式: (setq desktop-locals-to-save (append desktop-locals-to-save '((comint-input-ring . 50)))) 没用 我知道该desktop软件包正在运行,因为Emacs会记住我desktop-globals-to-save在init文件中添加的全局变量。 - 编辑:savehist也不起作用。我想那是因为comint-input-ring是局部缓冲区变量。

2
有没有一种简单的方法可以将主文件中引用的所有组织文件用于组织模式时钟表
我正在使用组织模式来跟踪我在各种项目上花费的时间。我有一个主要的组织文件,还有两个用于我正在处理的大型项目的文件。这三个都列在中org-agenda-files。我在主组织文件中创建了一个时钟表并进行设置 :scope agenda-with-archives 在Clocktable标头中以汇总花费的时间。这一切都很好。 但是,我还有一些较小的项目,它们在自己的org文件(位于包含有关那些项目的所有内容的子目录中)中也有时间跟踪,我也想在其中跟踪时间。 当然,我可以将这些文件添加到中org-agenda-files,但这意味着.emacs每次我开始一个新的小项目时都要更新。当然,世界上没有结束,但因为我已经在主要组织文件的链接,以小项目的组织-文件(见下面的例子),我想设置:scope成类似 :scope agenda-with-archives linked-org-files 理想情况下(尽管我还没有使用过),包括那些较小项目的归档文件将非常适合(类似:scope linked-org-files-with-archives)。 这是我的主要组织文件的结构示例: * Small project 1 See file:~/Projects/Project 1/notes_project_1.org for more details. * Small project 2 See file:~/Projects/Project 2/notes_project_2.org. ** DONE Some small task I can do quickly CLOCK: [2014-12-05 vr 12:19]--[2014-12-05 vr 12:40] => 0:21 Some info on the …
9 org-mode 

4
如何在Modeline中正确对齐某些项目?
给定以下modeline配置: (setq-default mode-line-format (list ;; Current buffer name "%b " ;; Major mode "[%m] " ;; Modified status "[%*] " ;; Cursor position "Line: %l/%i Column: %c")) 我希望最后一项显示为右对齐。
9 mode-line 

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

1
如何使用调试符号编译emacs?
我在遍历gdb中的emacs源代码时遇到了麻烦。我想我缺少调试符号。 根据https://stackoverflow.com/a/4298982/2752242的建议,我尝试了: ./configure CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" --with-gif=no --prefix=$HOME/local/apps/emacs-24.4/ 但是,那没有用。 是否有关于使用调试符号进行编译的说明?谢谢!
9 debugging 

2
使isearch在组织模式下跳过折叠的内容
问:如何知道isearch默认情况下忽略org-mode缓冲区中折叠块的内容? 更具体地说,我想isearch忽略注释块和抽屉的内容:在编写文档时,org-mode我经常使用注释块和自定义抽屉来存储有关所写文本的各种注释。我默认将它们折叠起来,以确保它们的内容不会分散我的注意力: (add-hook 'org-mode-hook #'org-hide-block-all) 这确实很好,但是org-mode如果这些块包含我要匹配的字符串的匹配项,那么它们不会停止扩展isearch。

1
使`delete-duplicate-lines`忽略空行和某些单词
我正在以组织方式编辑文本,重复了几行,因为它们位于同一主题的不同文件的一部分。 我想使用delete-duplicate-lines删除重复的行,但是,该命令也删除了空白行,这是我不想要的(否则我将没有段落!)。我想忽略某些行中单独存在的单词,例如“ Resume”,它在文本中重复了很多次,但是由于需要,所以我想保留它。


3
继续移至行尾
键绑定的默认设置C-a/C-e仅适用于一件事,移至该行的开头/结尾,是否有任何软件包可以使Emacs像这样进行操作: 如果我不在一行的末尾,C-e将转到该行的末尾,否则,转到下一行的末尾 如果我不在一行的开头,C-a将转到该行的开头,否则转到下一行的开头。 关键是您可以一直按一下C-a/e以转到每一行的开头/结尾,而无需动手指即可到达C-n/p。 并使用prefix(C-u),它们将以相反的方向转到行的开头/结尾。

2
Emacs版本之间字节码的可移植性
有时我会从同一主目录运行多个版本的Emacs。我有许多字节编译的文件。字节码在所有Emacs版本之间都不兼容,因此我.elc为每个版本范围的文件维护单独的目录。 字节码兼容的版本范围是什么?我目前有 gnu-19.29 gnu-20 gnu-21 gnu-22 gnu-23 gnu-24 source x-19 x-20 x-21 例如,每个主要版本的目录,以及在19.29处的附加分隔符(我从未在这台计算机上使用过旧版本,否则会有gnu-19),以及用于GNU Emacs和XEmacs的单独目录。不过,我可能过于谨慎。 关于Emacs版本之间字节码兼容性的官方政策是什么?我可以放心使用主要版本吗?我可以合并一些版本吗?是否有字节码版本指示或校验和,我可以在编译时创建目录名称而不是依赖Emacs版本来查询? 请注意,我主要对完全兼容性感兴趣,而不仅是向后兼容性。我可能会运行Emacs 27.3并字节编译一些文件,然后再使用相同的主目录对Emacs 27.2进行字节编译。

3
Orgmode从剪贴板插入链接?
是否有直接从系统剪贴板直接插入组织模式链接的简单方法?我正在考虑在Safari中选择一个URL,并将该链接直接插入到组织模式文档中。
9 org-mode 


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

3
有什么方法可以使提示和先前输出在shell / term-mode下不可编辑?
诚然,这是一个肤浅的问题。 尽管ansi-term在我第一次打开它时开始表现正确,但是在执行一些命令后,它似乎会降级为“可编辑”模式,例如,当我执行C-a(行首)后紧接着是C-k(杀死行)时,它会清除整个提示。 出于我的审美习惯,是否有任何方法可以使提示和以前的输出不可编辑(用于shell)?(鉴于有意义的差异,已更新以排除ansi-term。) 我在Emacs 24.4中使用zsh;通过Virtual Box的操作系统是LXDE(Ubuntu 14.04)。 (理想情况下,我仍然可以移动光标...)

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不能完成任务。 有人有什么想法吗?

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.