问题标签 [elisp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
424 浏览

emacs - 为什么 Emacs 的“downcase”函数会拒绝进行 downcase?

我正在尝试编写简单的 Emacs 函数来在 C 样式和 camelCase 之间转换 id(即 c_style <-> cStyle)。但是出于某种原因,Emacs 内置downcase函数使这个词保持原样。M-x downcase-word工作正常,所以我完全迷路了。欢迎任何想法。

如果我转换它工作正常,c_style但是当我尝试转换时,cStyle我得到了c_Style结果。是的,我已经检查过这是由于downcase行为造成的。

0 投票
4 回答
5620 浏览

emacs - 分析行为不端的 Emacs Lisp 的提示?

我经常定制 Emacs。最近,我在我的 .emacs 配置中添加了一些东西,它偶尔会将我的 CPU 固定在 100%,但我真的不知道它是什么。

如果我按 Cg 多次,最终我会在 minibuffer下方收到一条消息,询问我是否要自动保存文件,然后是否要完全中止 emacs。如果我一直拒绝并一直按 Cg,最终我可以恢复正常运行 emacs。一个小时左右后,它会再次发生。

我可以像现在这样继续前进,评论我最近添加的各种内容,重新启动 emacs,试图缩小罪魁祸首,但进展缓慢。

有没有办法可以直接分析 emacs 以找出占用 CPU 的 lisp 函数?

0 投票
2 回答
592 浏览

emacs - 为什么我不应该使用推送标记

我实现了一个小函数,它解析 SQL INSERT 语句并在游标位于列名上时突出显示列值,反之亦然。

然后我想增加一种在列名和列值之间快速跳转的可能性。我在我的实现中使用了 push-mark,所以我可以使用 Cx Cx(交换点和标记)跳转。它也有效,唯一困扰我的是一个elisp doc,它说

新手 Emacs Lisp 程序员经常尝试将标记用于错误的目的。为了方便用户,该标记保存了一个位置。大多数编辑命令不应改变标记。

我对标记的使用 - 正确吗?或者有什么更好的解决方案?

0 投票
4 回答
10546 浏览

emacs - 如何检查 Emacs 中是否存在当前缓冲区?

我想编写一个函数,如果给定的缓冲区名称已经存在,它会采取行动。例如:

elisp 是否有一个函数可以检查缓冲区是否存在,类似于我制作的“缓冲区存在”函数的功能?

谢谢

0 投票
5 回答
1482 浏览

emacs - ido-switch-buffer 和 bury-buffer

我最近开始使用 ido-mode,总的来说,它非常好。但有一件事似乎特别坏,我想知道是否有一个设置(ha)埋在那里来修复它。

ido-switch-buffer 似乎并不关心隐藏的缓冲区。也就是说,如果我使用 bury-buffer,然后使用 ido-switch-buffer,第一个选择通常是我刚刚埋的那个。

有没有简单的方法解决这个问题?掩埋缓冲区的全部意义在于我不想很快再次看到它。

0 投票
9 回答
8688 浏览

vim - 如何在 GNU Emacs 中模拟 Vim 的 * 搜索?

在 Vim 中,正常模式下的 * 键搜索光标下的单词。在 GNU Emacs 中,最接近的原生等价物是:

但这不完全一样。它打开增量搜索迷你缓冲区并从当前缓冲区中的光标复制到单词的末尾。在 Vim 中,您会搜索整个单词,即使您在按 * 时位于单词的中间。

我已经做了一些 elisp 来做类似的事情:

在启动 isearch 之前,它会倒退到单词的开头。我已经将它绑定到 C-+,它很容易在我的键盘上键入并且类似于 *,所以当我键入C-+ C-w它时,它会从单词的开头复制到搜索迷你缓冲区。

然而,这仍然不完美。理想情况下,它会正则表达式搜索"\<" word "\>"不显示部分匹配(搜索单词“bar”不应该匹配“foobar”,只匹配“bar”)。我尝试使用 search-forward-regexp 和 concat'ing \<> 但这不会包含在文件中,不会突出显示匹配项并且通常很蹩脚。isearch-* 函数似乎是最好的选择,但这些函数在编写脚本时表现不佳。

有任何想法吗?任何人都可以对 elisp 提供任何改进吗?还是有其他我忽略的方法?

0 投票
7 回答
30246 浏览

emacs - 如何对 Emacs Lisp 中的数字列表求和?

这有效:

这不起作用:

如果cl-*加载了“”,则此方法有效:

如果reduce总是有空,我可以写:

定义函数的最佳实践是sum什么?

0 投票
3 回答
4911 浏览

emacs - Emacs Lisp:如何对列表中的奇数求和?

我想找到 elisp 的类似物:

命令方式:

移植 Common Lisp

使用“ cl-*loop

有没有更惯用的方法(不需要cl-*包)?

有关的:

如何对 Emacs Lisp 中的数字列表求和?

0 投票
2 回答
885 浏览

emacs - 更好地控制 Emacs 窗口

我花了很多时间在 emacs 上,而且大部分时间都很棒。但是当我深入其中时,有一件事真的让我发疯,那就是控制在哪个窗口中打开各种新缓冲区。当我这样做时find-file,它总是在当前窗口中打开,这就是我喜欢的。但是很多其他模式喜欢为我拆分窗口、更改布局以及做其他各种让我烦恼的事情。例如,运行M-x manual-entry似乎没有关于它在何处打开联机帮助页的押韵或理由,并且各种org-mode命令做同样的事情,关闭我想保持打开的窗口等。我不喜欢每次我想看时都必须重做布局在我的org议程或打开手册页。

简而言之,是否有全局控制哪些窗口用于想要在当前窗口以外的窗口中打开的模式?我可以更轻松地指导他们吗?还是我必须破解每种模式才能按照我想要的方式行事?

0 投票
7 回答
6647 浏览

emacs - 如何在 Emacs Lisp 中进行闭包?

我正在尝试动态创建一个返回一个常量值的函数。

在 JavaScript 和其他现代命令式语言中,我会使用闭包:

但是 Emacs lisp 不支持这些。

我可以创建身份功能和部分功能应用程序的组合,但也不支持。

那么我该怎么做呢?