Emacs

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

3
为什么必须将每个程序包添加到加载路径?(或我的init文件中的require'package问题)
每次我从“程序包菜单”安装程序包时,如果尝试require在init文件中尝试安装它,除非手动将其添加到加载路径,否则都会收到错误消息: (add-to-list 'load-path "/home/nick/.emacs.d/elpa/use-package-20141220.1645") (require 'use-package-autoloads) (require 'use-package) 太乏味了。通常,软件包路径包含版本号。如果软件包已更新,则必须手动编辑加载路径。 有什么办法可以自动化吗?

1
什么是Emacs软件包开发的好工具?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 我们已经有一个专门用于测试的工具的问题,但是实际编写代码又如何呢?您发现哪些软件包可以加快您的开发速度?您使用哪些辅助工具快速轻松地导航和了解您的项目?



1
Emacs Lisp评论约定
《 Emacs Lisp参考手册》的附录D.7提到了一些注释提示: ;内嵌注释应使用单分号()。 ;;行注释应使用双分号()。 三元分号(;;;)应该用于“应将其视为大纲次要模式的标题的注释”。 ;;;;程序的主要部分的标题应使用四分号()。 单分号和双分号的用例很明确,但在三分号和四分号之间似乎没有清晰的界限。 特别是,由Emacs提供的Emacs软件包的标准文档auto-insert使用了三分号,从不四分号,即使对于最高级别的标题,例如文件名和主要部分。请参见下面的示例: ;;; test.el --- A test file. -*- lexical-binding: t; -*- ;; Copyright (C) 2016 ;; Author: John Smith ;; Keywords: ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General …
17 elisp  comment 

2
Magit日志日期
在Magit日志缓冲区中,提交(每行一次)与相对日期一起显示。这对于最近的提交很好,但是对于较旧的更改却毫无意义。特别是,这使得将提交日期与特定日期联系起来非常烦人,例如,找到问题“哪些更改可能破坏了4月3日的发布?”的答案。 是否有可能改变提交日期的显示方式?我只发现了magit-duration-spec,但这并不是我真正需要的。
17 magit 

8
如何直接跳到组织标题?
如果我在组织文件中,则需要一个命令来缩小常春藤/头盔样式的候选列表,该列表由文件中的所有组织标题组成,并允许我通过模糊搜索选择要跳转到的标题至。有没有办法做到这一点?

4
Magit-如何在m​​agit-status中扩展所有部分并折叠所有部分
按下TAB一个未暂存的文件会显示或隐藏与该文件有关的详细信息。 如何一次显示和隐藏(切换)所有未暂存文件的详细信息? 我确实通过遇到了大纲隐藏子级别M-x。但是我想知道一种组合键来实现此目的。 我还键入了?要检查magit-status区域的快捷键快捷键,但找不到答案。
17 magit 

2
关于使用Cx或Cc作为前缀键的约定
什么是使用的约定C-x,C-c或者M-作为前缀键? 例如:是C-x等用于保存或访问缓冲区吗?是C-c等用于文本编辑吗? 背景 也许这是一个愚蠢的问题。我使用西班牙语键盘,有时会重新定义英语(QWERTY)键盘常用的键绑定。例如:shell命令在原始Emacs中绑定到M-!。我将其绑定到M-¡,因为M-!是M-shift-1,我无法轻易按下。我想知道在进行此类更改时是否存在我要超越的约定

3
守护程序模式:在启动时是否推迟交互提示?
(请注意,与此相反,此问题与“ 如何在守护程序模式下启动并禁止交互对话框?”相同,因为提交者“回答”了该问题,从而消除了导致出现特定提示的原因。) 我想知道是否有一种通用方法可以防止emacs --daemon永远挂起,等待对尚未存在的微型缓冲区中显示的提示的答案。 与emacsclient连接以回答这些提示是不可能的,因为直到Emacs完成启动顺序服务器才启动。(这意味着,如果您将ALTERNATE_EDITOR设置为空字符串,这将导致emacsclient找不到服务器启动新的守护程序,则最终可能会导致多个Emacs守护程序被卡住并等待。)我必须killall emacs解决此问题。在继续之前。 我可以在识别到每件事的过程中对每件事都进行重击(通过在非守护程序模式下启动Emacs并查看其要求),但这不是解决方案,因为它无法停止下一个守护程序因新原因而挂在启动上。 举个例子:当系统重新启动或Emacs崩溃后,它挂起的常见原因是第一次重新启动后,Emacs想知道是否可以从已失效的Emacs窃取锁定文件。我可以通过创建建议来解决该问题,以使该提示始终在没有交互的情况下回答“是”。但是随后,在上一个会话保存中打开的文件之一是需要使用sudo或SSH密码的TRAMP文件,因此,守护程序一直在等待密码提示。因此,我通过手动编辑会话文件(使用vi或emacs -q!)来删除有问题的文件来解决此问题,但这并不能阻止它下次发生。 因此,我可以在启动时自动停止加载会话,并将其更改为必须从第一个emacsclient手动执行的命令。但是,如果它不是在后台加载我的会话,那么在我准备使用它的时候就已经准备好了,守护程序的全部目的都将丢失! 所以我想要的是: (最佳)以某种方式将最小缓冲区提示延迟到我打开emacsclient时,同时仍完成其余的初始化。 (确定)以某种方式使所有我没有告知过的小缓冲区提示,否则如上所述,no除非正在运行emacsclient,否则只是返回。只要它可以正常工作,我就可以忍受TRAMP缓冲区出错。 有什么方法可以实现这些目标之一?

6
如何修补Emacs软件包?
我希望更改一个程序包,对其进行测试,并希望以后再提交请求。如何安全有效地做到这一点?这个问题可能太笼统了,我将接受涵盖以下问题的答案: 我希望安装一个单独的程序包分支,并且能够随心所欲地在程序包和稳定分支之间进行切换,并在必要时自动执行重新编译,但package.el似乎并没有提供一种简单的方法。这个关于emacs-SE的答案告诉我们:“如果安装了一个软件包的多个副本,则将加载第一个副本”,所以我猜可能会手动将其弄乱,load-path但这并不稳健。在已安装的软件包中选择特定版本的软件包的标准方法是什么? 即使我设法向Emacs公开了多个分支,也需要进行重大调整,以确保未修补的分支已“卸载”并且其副作用得以隔离。是否unload-feature正确处理此问题,或者它具有多版本软件包的每个测试人员都应该了解的特质? 如何安装和测试本地版本?答案似乎取决于软件包是简单文件(=一个文件)还是多文件包。EmacsWiki关于多文件软件包说:“ MELPA为您构建软件包 ”。我怀疑每次更改defun多文件包中的表单时都必须(或应该)与MELPA进行交谈,但问题仍然存在。至少我需要告诉软件包管理器本地版本,如果是,我该怎么做? 我应该为本地版本的软件包分配什么名称?假设我想同时处理多个功能或错误,这意味着要有多个分支。Emacs不允许以描述性的方式命名版本(沿着20170117.666-somebugorfeature)。我想我可以重命名程序包本身,每个分支都带有一个后缀,但是再说一次,就像load-path在Q1中手动弄乱一样,这是一个丑陋的破解,所以除非打算被广泛接受,否则我不会尝试将其发送给上游。 这些问题可能很幼稚,因为我从未写过既未在git中使用过补丁,也未在类似vcs中使用过的补丁。但是,对于许多Emacs用户而言,修补Emacs程序包可能是他们有史以来的第一个(或者可能是唯一的)社交编程,这就是为什么我认为对此问题的答案仍然有价值的原因。

1
组织模式日历集成?
日历(由调用M-x calendar)具有日记整合功能。这样,您可以查看日历缓冲区中的任何特殊日期(如果当天有日记条目,则该日期将为彩色),并通过来查看该日的详细条目d。 由于org-mode还具有时间戳功能,因此像日记条目一样将其集成到日历中会很好。它不一定与集成calendar,而是可以像日历格式那样查看日期,然后从该日历中打开详细日期视图的东西。 问题:有这样的功能吗?

2
(point-min)为什么比1更受欢迎?
我搜索了Emacs Git存储库中的所有Emacs Lisp文件,发现(goto-char (point-min))发生了3621次,(goto-char 1)发生了31次。就我个人而言,我看到很多,(point-min)但没有1,即使在很多情况下,也可以100%确定该区域不会缩小。因此,这是我的问题:与未缩小的缓冲区(point-min)相比,它仍然是首选的1吗? 我猜1比(point-min)它快,没有多大,因为函数调用时1是常量(point-min)。此外,1比短得多(point-min),1个字符对11个字符。
16 buffers 

1
通过激活CUA模式我要放弃什么?
CUA模式非常接近我在Emacs外部所习惯的工作流程,因此我很想激活它。 但是我了解到Emacs可能隐藏了一些有用的宝石,而CUA模式似乎是后来附加的东西。 我知道CUA模式的好处。 但是我不知道通过激活它会放弃什么。 阅读Emacs信息不是很了解Emacs核心方法与CUA模式的优缺点。 在这方面,关于CUA模式的EmacsWiki部分也没有太大帮助。 熟练的Emacs用户通过激活CUA模式会错过哪些功能?
16 editing  cua-mode 

4
如何在另一台计算机上获得相同的Emacs环境?
我是Emacs的初学者(已经使用了大约2周并喜欢它)。当我更新和扩大我的~/.emacs.d/init.el文件,这个事情,我写在那里靠,我用从MELPA安装某些包M-x package-install,在.el文件我写我自己,等等。 我的问题是,例如,将来我应该更换计算机时,什么是在新计算机上无缝地获得相同的确切Emacs环境的最佳方法是什么?
16 init-file  config 

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.