Emacs

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

3
如何使用Emacs Lisp找到可执行文件的路径?
我当前的用例是查找Cask可执行文件的位置(它可以安装在至少两个位置,并且存在一个与此相关的问题)。 我需要这样的酒桶: (require 'cask "~/.cask/cask.el") 但是我需要找到正确的路径cask.el,据我所知,最简单的方法是找到可执行文件。 我怎样才能做到这一点?
16 elisp  files  cask 



2
如何正确使用defcustom?
像大多数Emacs用户一样,我通过更改变量自定义了模式。对我而言,从未发生过的事情就是可以自定义“那个和那个”。当我开始查看eshell的一些源代码时,我意识到了这一点。我不是elisp程序员,但em-ls.el似乎专门使用defcustom,defgroup等。这似乎是elisp代码使用的全局定义变量的影子世界。因此,一个问题是,是否使用defcustom另一种处理(可自定义的)全局变量的方式? 谁能指出我如何正确使用(首先理解)背后的全部思想defcustom,何时使用,为什么,何时不使用?也许是elisp初学者的初学者示例。
15 elisp  defcustom 


6
递归列出所有文件和子目录
有没有一种方法(可能使用包)来递归列出所有文件(带有路径)和子目录(或至少是空子目录,因为可以从非空目录的路径中收集到非空目录的路径)当前目录中包含的文件)? 我能找到的最接近projectile-find-file的是projectile包的功能(或者,包的helm-projectile-find-file功能helm-projectile),但它似乎无法列出空文件夹。此外,它似乎仅适用于Git和其他版本控制存储库,但是对于此限制可能有解决方法。
15 files 

2
JSON的大纲编辑(如组织模式)
我正在尝试在emacs中编辑Swagger JSON文件。它包含大型嵌套的JSON对象,因此我想折叠并隐藏其中的一些对象。 我已经尝试过origami-mode,按origami-c-style-parser中所述进行配置origami-parser-alist,但是它并不复杂(“ parser”一词似乎对它的功能而言过于夸张)。它没有注意到Swagger URL参数子字符串{id}在JSON字符串中,因此当我要求它折叠缓冲区中除当前节点之外的所有节点时,它也会愉快地折叠它们。我不希望它那样做。我想要一种仅折叠像对象这样的JSON子树的方法,而不是折叠其中恰好有花括号的JSON字符串的子字符串的方法。我怎样才能实现这个目标?

1
'(a。b)确实是列表吗?
我对.表示法感到困惑。是'(a . b)清单吗? (listp '(a . b))返回,t但是当我想知道它的长度(length '(a . b))给出一个错误时Wrong type argument: listp, b。其他功能也一样,nth,mapcar它们都给出相同的错误 是否可以区分'(a b)和的任何功能'(a . b)? 上下文:我想实现的递归版本时遇到此问题mapcar。这是我的实现 (defun true-listp (object) "Return non-`nil' if OBJECT is a true list." (and (listp object) (null (cdr (last object))))) (defun recursive-mapcar (func list) "Evaluates func on elements of the list, then on …

2
我可以拍摄Emacs的矢量(SVG)屏幕​​截图吗?
该gtk-vector-screenshot程序可用于拍摄Gtk-3应用程序的矢量屏幕截图。似乎可以通过要求应用程序将自身重绘到SVG画布上来工作。 可以使用Gtk +构建GNU / Linux上的Emacs,但是尝试在Emacs窗口上使用上述应用程序会导致屏幕截图仅包含GUI元素(如菜单栏);不渲染缓冲区(我尝试使用开罗和不使用开罗)。鉴于Emacs的缓冲区渲染发生在相当低的水平,这并不奇怪。 仍然有办法拍摄Emacs的可伸缩矢量屏幕截图吗?
15 fonts  rendering  gtk3 

1
组织联系人中的生日
我是组织模式(和Emacs)的初学者,但我认为组织模式将是存储联系人的好地方/格式。我想做的一件事是为联系人添加生日。我找到了org-contacts.el,它似乎具有我想要的东西:我在contacts.org中添加了一个人,并添加了生日属性。 * Ficitive Person :PROPERTIES: :EMAIL: fp@example.com :BIRTHDAY: 2000-09-24 :END: 现在在另一个文件(agenda.org)中,我具有以下内容: * Birthday %%(org-contacts-anniversaries) 当我按C-c a a(M-x org-agenda-list)时,我会看到他们的生日以及他们的年龄,很酷! 但是,对于某些人,我知道他们的生日,但不知道他们的年龄。我仍然想在日历上看到这是他们的生日,但是当我以任何其他格式输入生日时,都会出现错误: Bad sexp at line 24 in [...]/org/agenda.org: (org-contacts-anniversaries) 有不知道年份插入生日的格式吗? 就像我说的那样,我是emacs菜鸟,因此,如果有比org-contacts(或org-mode)更好的方法,我很乐于学习这种方法。

2
如何设置ELPA服务器?
我和一个伙伴希望开始编写专门用于我们公司的emacs软件包。(相信我,我们写的任何东西都不会受到外界的任何关注-它与内部工具的集成。) 我们希望使软件包的安装和维护尽可能简单,我们认为这意味着与集成package.el。我们需要做些什么来建立用于此类用途的存储库?

2
使用package.el进行安装和更新,但使用package进行加载和配置
在最近了解了有关信息之后,use-package我决定将配置移植到该配置中,但发现自己不愿意放弃使用package.el安装软件包并保持更新的便利。我发现将use-package和结合起来有点棘手package.el。 我通常对学习人们如何use-package与package.el系统结合感兴趣,但是对于更具体的问题,请继续阅读。 这就是我想要的: 要由软件包管理器安装软件包,以便我可以轻松浏览软件包并通过进行更新list-packages。 要通过专门配置和加载程序包use-package,因此我可以轻松地在init文件中准确查看正在加载的内容以及配置方式。 (可选)我也希望能够通过use-package的:ensure关键字安装软件包。 如果我正确理解的话,我几乎package-initialize不需要做什么,基本上只希望它设置的方式load-path。目前,我的配置中包含以下内容: ;(package-initialize) (setq package-enable-at-startup nil) (let ((default-directory "~/.emacs.d/elpa")) (normal-top-level-add-subdirs-to-load-path)) (require 'use-package) 第一行带有注释,因此Emacs 25不会(package-initialize)对我的init文件添加帮助。有位normal-top-level-add-subdirs-to-load-path是一种近似什么package-initialize会使load-path,这似乎是足够好的近似。 这似乎实现了我的愿望1和2,但没有达到3。如果尝试使用:ensure,则会收到一条错误消息,指出package.el未初始化。调用package-initialize可以解决该问题,但是我希望避免这种情况,因为a)我不想加载所有无数的自动加载程序(我更喜欢使用它use-package来精确创建所需的自动加载程序),以及b)我希望能够轻松避免在需要时加载某些已安装的软件包(使用即可轻松完成use-package)。 有没有人建议如何做?


4
自动格式化SQL代码
有一些通用的SQL 编码标准和样式(例如,大写保留字,将主关键字置于不同的行等)。 Emacs是否为此提供任何模式,或者是否存在用于格式化SQL以使其遵循通用标准的软件包?

1
多个地方的组织模式标题一次出现了吗?(包含)
我想一次以多种方式组织标题。(与我在任何地方组织事物时一样的灵活性-例如超过议程提供的灵活性) 理想情况下,我能够在文档的一部分中创建标题,然后在其他地方创建指向该标题的“硬链接”,随着标题内容的更改,这两者都会更新。 下一个最佳选择是“软链接”,它仅将标题内容存储在一个规范位置中,而仅在另一个位置中显示(如果您在其中一个位置进行编辑,则仅在规范位置中进行更新)。 现在,我所能做的最好的就是只创建普通链接,我需要手动遵循这些链接才能看到内容。有什么方法可以做得更好呢?
15 org-mode 

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.