Emacs

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

2
如何标记报价?
如何在org-mode中指定引号,以便在github中很好地呈现它?在markdown中,它的呈现方式如下: 有两件事是无限的:宇宙和人类的愚蠢。我不确定宇宙。- 阿尔伯特·恩斯坦 提前致谢。
19 org-mode 

1
如何在Windows上为Emacs 25.1安装GnuTLS?
我刚刚将Windows 10计算机上的Emacs从24.5升级到25.1。对于Emacs 24.5,我正确设置了GnuTLS,对于25.1,我做了我想起的事情: 从GNU Emacs网站的下载页面获得了预构建的Emacs二进制文件。我使用的是32位Windows,因此获得了i686的i686版本。 从ezwinports获得了GnuTLS的副本并将zip文件提取到与Emacs相同的目录中-gnutls zip的组织方式意味着,gnutls的dll和exe都以与Emacs exe相同的目录结尾。(这次我获得的版本是3.3.11;我不记得当我拥有24.5版本的Emacs时所使用的GnuTLS版本。) 这次没有用。gnutls-available-p返回nil,包管理器只能连接到http存储库,而不能连接到https存储库,eww也不能处理https。 如何为Emacs 25.1设置GnuTLS?我是否记得24.5所做的事情?也许GNU Emacs网站上的二进制文件是在没有GnuTLS的情况下编译的,而对于24.5,我实际上是从其他地方获得的二进制文件...

3
什么时候/为什么应该使用progn?
progn浏览经验丰富的Emacs用户的配置文件时,已经看到了很多使用情况。我找到了这个很好的解释progn,但是我真正好奇的是,使用此功能的好处是什么?以以下片段为例(摘自Sacha Chua的配置): (use-package undo-tree :defer t :ensure t :diminish undo-tree-mode :config (progn (global-undo-tree-mode) (setq undo-tree-visualizer-timestamps t) (setq undo-tree-visualizer-diff t))) 上面的配置与此之间有什么主要区别吗? (use-package undo-tree :defer t :ensure t :diminish undo-tree-mode :config (global-undo-tree-mode) (setq undo-tree-visualizer-timestamps t) (setq undo-tree-visualizer-diff t)) 我觉得第一个示例在某种程度上来说更干净,尽管它具有更多的语法,并且我的直觉是使用可能会带来某种性能提升progn,但是我不确定。感谢您的任何见解!
19 lisp 


2
尽管有很多软件包,如何改善启动时间?
TL; DR我的软件包太多,以至于影响了我的启动时间。如果您不相信这种情况,请继续阅读。 我的Emacs启动时间非常短。我不使用use-package,我只是设置了很多钩子和autoloads,所以几乎所有代码都被推迟了。实际上,整个过程加载起来通常不到半秒,尽管看上去好像一团糟。 然而,随着时间的推移,我发现我的启动时间变细慢,令人费解。最终达到启动时间≥1秒的程度。我终于受够了,我深入探究了问题的根源。我最终注释掉了我的整个~/.emacs文件,发现启动时间仍然 ≥1秒。实际上,它只减少了大约0.2几秒钟,有时甚至更少。然后,我尝试emacs -q发现启动时间为〜0.1秒。 通过阅读Elisp手册的这一部分,我发现了为什么要这么emacs -q减少启动时间。显然emacs -q阻止了Emacs在启动时做三件事: 加载您的初始化文件 加载default.el文件 呼唤 package-initialize 我们已经排除了我的init文件,因为注释掉我的整个文件~/.emacs几乎没有任何作用。我不使用default.el文件,因此也排除了该文件。这package-initialize是造成性能下降的罪魁祸首。 为什么package-initialize要占用这么多启动时间?那是我问自己的第一个问题。我不是自动加载所有内容吗?嗯,是。但是,这恰恰是问题。 我发现这篇文章解释了“激活”软件包包括读取自动加载文件和设置加载路径。当您有许多软件包时,这显然会导致I / O损失,因为您有许多要读取的自动加载文件和许多设置路径。不幸的是,没有这个,管理自动加载的任务就落在用户手中。换句话说,在不让package.el爬网文件系统自动加载文件和路径的情况下,我必须亲自管理该过程,这可能是一个乏味且容易出错的过程。 我宁愿不走那条路。我目前有116个软件包,其中有107个来自ELPA,其中25个是依赖项。我确信这个惊人的数字是对我的表现造成如此严重的影响。但是我很困惑,因为我不想删除任何软件包。 在这种情况下是否有任何补救措施可以使我的闪电启动时间恢复原状? 更新: 我们已经开始了一个新的线程上emacs-devel关于邮件列表的一些 补丁由斯特凡Monnier的(这些补丁的描述是这里)来解决这个问题。欢迎任何人测试他的补丁并提供反馈。 另一个更新: 似乎Stefan Monnier对这个问题不再感兴趣,或者他没有收到我的消息。我倾向于相信前者,这很好,尽管在这种情况下,我将感谢他的某种回应。无论如何,到目前为止,他为该问题编写的代码都运行良好。他的最新补丁可以在此处(对于Emacs 25.3)和此处(对于Emacs master分支)找到。由于有了他的补丁程序,我在启动时间上看到了很好的改进,并且我对启动时间感到满意,因为它在不减少自定义功能的情况下尽可能地得到了优化。我希望这些修补程序能够在某个时候进入Emacs主线,但我想我(或其他人)现在必须为此承担火炬,而不是Stefan。在邮件列表中,我们有些关于版权转让和许可的问题。最初,我对此感到不舒服,但是由于理查德·斯托曼(Richard Stallman)和其他人的一些评论,版权分配可能没有我最初想象的那么严格。此外,我可能有可能将我的作品提交到公共领域,以替代版权转让。 无论如何,感谢Stefan到目前为止的补丁!我希望您会继续开发这些更改,但是如果没有,那就可以了,我可能会在某个时候继续开发它。我还要感谢其他所有为解决此问题提供见识和贡献的人。 另一个更新: 哇,该功能终于登陆了,将在Emacs 27中使用。感谢Stefan Monnier!

3
Magit,如何使用系统的ssh代理并且不要求输入密码
我已经在Google上搜索并阅读了Magit的FAQ和Wiki,但仍然无法弄清楚,我发现的只是有关Windows的答案... 如何配置Magit以使用正在运行的ssh-agent会话,并且在进行推送时不要求输入密码。 我正在运行linux,并使用终端启动ssh-agent,然后解锁我的密钥,这使我可以进行git push等操作,而无需每次输入密码。 环保: Arch Linux Emacs 24.4 带有密钥的ssh-agent,用于在打开的第一个终端上解锁。 编辑:我的意思是使用密码短语,您知道ssh密钥等。 我正在推动Bitbucket,但我确实相信关键问题是Magit并未在说/识别我的ssh代理。 也许要设置一些配置,以告诉我我正在运行它??
19 magit  linux  ssh 

1
Emacs不会在每个OS剪贴板上以Evil的Visual模式粘贴
设定: KAEL的GUI版本GNU Emacs 25.0.50.1(x86_64-w64-mingw32)/ 2015-07-25从EmacsW64 编译。 使用MELPA的最新版本的Evil打包Evil Windows 7 x64位。 情况: 使用仅启用了Evil的空Emacs配置进行了测试。我从Windows应用程序复制一些文本。然后,我将其粘贴到Emacs里面normal mode用p。我看到了文字。 然后我切换到Windows应用程序,选择另一个文本,将其复制。切换回Emacs,直观地选择文本,然后粘贴到visual mode。但是区域内的文本不会被Windows剪贴板中的文本替换。 这不是默认的Vim。我如何配置它,以使视觉文本被最新的复制操作(在本例中为Windows剪贴板)替换?

1
GitHub Markdown模式
GitHub Flavored Markdown是否有Emacs模式? GitHub Flavored Markdown 在传统Markdown上增加了许多功能:下划线处理,URL自动链接,删除线和表格。拥有支持这些添加功能(尤其是表)的Emacs模式会很好。
19 markdown  github 


2
是否可以从时钟报告中删除“ \ emsp”但保留缩进?
是否可以仅用普通空格替换'\ emsp'? 即,在“时钟”报告中,有很多这些“ \ emsp”。(请参见下面的示例。) 我可以通过设置':indent nil'摆脱它们。但这完全消除了所有缩进,这是不可取的。如果我导出东西,我也可以摆脱它们。但是在“议程”视图中,我不导出报告,\ emsp只是一种视觉干扰。 到目前为止,我已经能够通过格式化程序删除“ TODO”关键字,如此处所述。但是格式化程序似乎看不到'\ emsp'并且无法删除它们。好像是在添加之后。 |-----------+-------------------------------------------------------------------+---------+------| | dev.org | *File time* | *9:54* | | | | Dev | 9:54 | | | | \emsp Configure VMs for testing [[elisp:(my/goto-parent)][parent]] | | 5:03 | | | \emsp test if DND works in outline view …
19 org-mode 



2
在大型缓冲区中获取“行中行号”的更快方法
line-number-at-pos当点接近缓冲区的末端时,该函数(当重复约50次时)会导致半大缓冲区(例如50,000条线)明显减速。减速是指总计约1.35秒。 与其使用100%的elisp函数对行进行计数并转到缓冲区的顶部,我对一种混合方法感兴趣,该方法利用了负责出现在模式行上的行号的内置C功能。不管缓冲区的大小如何,出现在模式行上的行号都会以光速出现。 这是一个测试功能: (defmacro measure-time (&rest body) "Measure the time it takes to evaluate BODY. http://lists.gnu.org/archive/html/help-gnu-emacs/2008-06/msg00087.html" `(let ((time (current-time))) ,@body (message "%.06f" (float-time (time-since time))))) (measure-time (let* ( line-numbers (window-start (window-start)) (window-end (window-end))) (save-excursion (goto-char window-end) (while (re-search-backward "\n" window-start t) (push (line-number-at-pos) line-numbers))) line-numbers))

1
如何在组织模式代码块中指定默认标头参数
我想将默认标头参数设置为org文件中的代码块,如下所示: #+PROPERTY: header-args :session *my_python_session* #+PROPERTY: header-args :results silent #+PROPERTY: header-args :tangle yes 我的代码块如下所示: #+BEGIN_SRC python import pandas as pd #+END_SRC 但是,当我org-babel-tangle从该缓冲区调用时,我从filename.org获得了纠结的0代码块。当我添加:tangle yes到该#+BEGIN_SRC行的末尾时,调用时将导出代码块org-babel-tangle。 我希望不需要:tangle yes在每个代码块上进行设置。我究竟做错了什么?

1
使用一个图形工具箱而不是另一个图形工具箱编译Emacs有什么好处?
似乎选项是gtk,gtk2,gtk3,透明或雅典娜主题。当然,存在视觉差异,一个工具箱可能比其他工具更符合您的口味。除此之外,在性能或功能方面是否还有其他差异?为了与其他应用程序保持视觉一致性,我曾经使用gtk编译Emacs,但是,当我仅使用lucid进行编译时,我的印象是,使用lucid进行渲染可能比使用gtk更快。

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.