Emacs

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

2
导航到内置函数和变量的源代码
在一天当中,我经常使用C-h f或C-h v(describe-function和describe-variable)查找有关函数和变量的文档。如果我没有获得所需的全部信息,通常会单击以下文件末尾的文件链接: some-random-command is an interactive compiled Lisp function in `some-mode.el'. 并导航到源代码。这适用于已安装的软件包,但似乎不适用于内置软件包。例如,在命令的帮助页面顶部,describe-function我得到的是: describe-function is an interactive compiled Lisp function. 没有链接到源代码。有什么方法可以快速导航到内置包的源代码? 我知道我可以在中找到源代码,例如,/usr/share/emacs/24.5/lisp并提出了多种方法来快速访问该目录,但是我很好奇是否有一种快速简便的方法可以导航到内置函数/变量定义中。源代码。谢谢!

1
合并多个eshell的历史记录
在切换到eshell之前,我先进行了zsh设置,以便: 每条命令后写出到历史文件 追加而不是覆盖历史记录文件,因此在运行多个shell时,它们都将合并为一个大历史记录 这两个zsh选项均在此处记录(请参阅APPEND_HISTORY和INC_APPEND_HISTORY)。 当与较大的历史记录大小结合使用时,这非常有用,因为您可以在发出命令后几周内打开一个新的Shell,并在历史记录中找到它(没有这些选项,较大的历史记录将无用,因为它仅包含最近关闭的历史记录贝壳)。这也意味着您可以打开新的Shell,并使它们立即知道其他Shell中的最新命令。有什么办法可以设置这种行为的eshell吗?第一个项目符号似乎很容易,但是追加看起来就比较棘手了。
9 eshell  history 

1
简单的request.el使用
我尴尬的问题很简单: 为什么以下代码有效: (require 'request) (defun geocoder () (request "http://rpc.geocoder.us/service/csv" ;;; **Hardcoded parameter!** :params '(("address" . "1600 Pennsylvania Ave, Washington DC")) :parser 'buffer-string :success (function* (lambda (&key data &allow-other-keys) (when data (with-current-buffer (get-buffer-create "*request demo*") (erase-buffer) (insert data) (pop-to-buffer (current-buffer)))))) :error (function* (lambda (&key error-thrown &allow-other-keys&rest _) (message "Got error: %S" …
9 elisp 

1
如何最有效地导航到组织标题的主要文本的开头或结尾?
使用快速键从一个组织模式标题的开头快速导航到另一个很容易。 假设现在我是标题的开头,并且我想添加到正文中,紧接在TODO关键字之后的开头。然后M-f Space会带我到我想去的地方。如果没有TODO关键字,则为M-f M-b。 如果我想到达标题文本的末尾,则比较棘手。如果结尾没有关键字,并且标题下方没有隐藏的折叠文本,则与一样简单C-e。但是,这种情况很少。如果有折叠文本,但没有关键字,那么我可以做C-e M-b。但如果是一个或两个关键词在标题折叠的结束,那么我会发现自己打字(恐怖)C-e M-b M-b M-b M-f!而且,如果有两个以上的关键字,情况会更糟。 当我一个接一个地跳来跳去并编辑大量标题时,可能要考虑很多事情,这确实弄乱了我的整个流程。理想情况下,在所有这些情况下,我都想重新定义s并e作为快速键来使我准确地想要离开。 有没有人看到这个问题的现有解决方案?我的elisp技能很少,要靠我自己解决这个问题很艰巨。


4
如何在组织模式下将“旁注”添加到文本文件?
我想知道如何在组织模式下将等价的注解(提示,思维点表示,参考)添加到文本中? 标签可以正常工作,但似乎仅限于标题。 我还可以将整个文本分为两个固定大小的列(带有一个|<140>|<20>|表)。但是,在后一种情况下,文本将无法充分流动。 脚注也是增加额外信息的一种方式,但是它们不再是边注。我想,这就是为什么他们称它们为脚注。 我还有什么其他选择?例如,我是否可以打开两个缓冲区,然后以某种方式“绑定”两者的滚动,以便缓冲区a的第n行始终出现在缓冲区b的第n行的侧面?
9 org-mode 

2
如何获取自定义的组织抽屉以打开/关闭?
我的抽屉似乎没有因为TAB而倒塌。我什至尝试了典型的例子: * This is a headline Still outside the drawer :DRAWERNAME: This is inside the drawer. :END: After the drawer. 当我将光标放在行上:DRAWERNAME:并TAB没有命中时: 另外,当我将光标放在标题上并TAB反复按时,会循环显示以下两种状态: ...和: 换句话说,整个标题看上去是折叠的,但抽屉本身从未折叠。
9 org-mode 

2
如何在不破坏缩进的情况下以LaTeX模式编写[0,1)?
使用编写LaTeX时latex-mode,我经常想在文本中编写“半开间隔”。例如,[0,1),它指的是集所有号码的x使用0 <= x < 1。 不幸的是,这些“不平衡的定界符”似乎使缩进解析器混乱,导致后面的文本不适当地缩进,通常向右漂移。 这是一个示例文档。下面的文本是执行后的结果C-x h M-x indent-region。正确的行为是使所有两个段落都缩进0个空格。 \documentclass{article} \begin{document} Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam volutpat at dui et mattis. Here is a half open interval $[0,1)$. Proin fringilla lectus nec mi tincidunt aliquet. Vestibulum fermentum eu neque id egestas. Here is another $[1,2)$. …

2
如何编写一个简单的“完成点函数”功能?
我正在考虑编写一种用于编辑Magic的主要模式:Gathering卡座。 大部分看起来很简单,但是我有一个问题。大约有15,000张独特的魔术卡(即具有唯一名称的卡)。我希望能够通过编写点完成函数来完成对它们的操作。我一直在寻找一个简单的capf函数的基本示例,该函数仅针对一组单词即可完成,以作为我的模式的基础,但到目前为止却找不到任何东西。您知道有什么很好的例子可以开始吗?并且您认为获得良好的性能还是容易的,还是我必须编写自己的数据结构(也许我想像的是Trie)。 显然,我需要找到一种与新卡等进行同步的方法,将来也许甚至可以通过除卡名之外的其他特征来搜索卡,但可以等待。


2
如何确定包装中需要的包装版本?
我现在有几个软件包,在PackageRequires部分中,我想将我需要的所有软件包放入其中,好像它需要名称和版本。您在哪里确定版本号?例如,我有(cl-lib“ 0.5”),但是确定我可以使用的最低版本的最佳方法是什么?我可以看到当前版本,但是确定所需最小值的最佳方法是什么?另外,某些必需的软件包在其文件中未指定版本。在这些情况下,建议什么?
9 elisp  package 

1
after-init-hook和emacs-startup-hook有什么区别
似乎有一些关于Emacs初始化的动作的钩子。但是,我不确定它们之间的区别是什么,简短的谷歌搜索信息很少。它就像emacs-startup-hook在Emacs启动后立即执行,但不一定等待初始化完成吗?
9 hooks 


1
如何很好地处理与视线模式兼容的git diff?
我在组织模式下visual-line-mode打开稿子,将其打开。从物理上讲,我的一段只是一条软包装的线。 在这种情况下,当我尝试git diff(magit)来查看所做的更改时,所有这行(段落)都标记为已更改。我无法简单地更改本段的哪一部分。 我认为应该有一些解决此问题的解决方案,但我无法从网站上找到任何答案。谁能分享您的好解决方案?
9 magit  git 

3
如何控制org todo关键字缓冲区的显示位置?
问:如何控制orgtodo关键字缓冲区的显示位置? todo使用C-c C-t(org-todo)输入关键字会打开一个包含关键字选项的新缓冲区,然后在选择一个缓冲区后再次将其关闭。到目前为止,一切都很好。但是,这样做却要接管另一个窗口,这不太好,尤其是因为它实际上只需要显示带有关键字的一两行。 因此,使用以下布局,C-c C-t在左侧窗口(some-org-buffer)中单击时将*Org todo*在右侧窗口中打开: +---------------------+---------------------+ | | | | | | | | | | | | | some-org-buffer | some-other-buffer | | | | | | | | | | | | | +---------------------+---------------------+ 相反,我想弹出一个小窗口作为垂直拆分,如下所示: +---------------------+---------------------+ | | | | | | | some-org-buffer | some-other-buffer | …

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.