Questions tagged «elisp»

Emacs Lisp是GNU Emacs文本编辑器的扩展语言,实际上,Emacs的大多数功能都是使用Emacs Lisp实现的。用户通常通过在其〜/ .emacs中添加Emacs Lisp语句或编写单独的软件包来自定义Emacs的行为。


9
Emacs中是否有(repeat-last-command)?
通常,我会深入研究apropos和docs,寻找类似以下内容的内容,只是为了放弃手头的任务而放弃: (repeat-last-command) 执行我刚刚执行的最后一个C-或M-命令(将其反弹到fn键) 或有时相关: (描述最后一个功能) 我只是错误地发出了什么按键,我想将其效果添加到我的技巧包中。describe-key很接近,但是需要知道我输入的内容。 我只是向我可信赖的伙伴问了太多吗?
143 emacs  elisp 

5
如何对.emacs.d目录中的所有内容进行字节编译?
我决定去看看Emacs,我非常喜欢它。现在,我正在使用Emacs入门工具包,该工具包提供了更好的默认设置以及一些对Emacs默认安装的不错的自定义设置。 我已经对其进行了一些自定义,并添加了诸如yasnippet,color-themes,unbound和其他内容。我已经建立了一个github存储库,其中保留了所有自定义项,以便可以从多个位置访问它们,或者万一发生问题而丢失了.emacs.d目录。 所有这些都非常好,但是有一个问题:Emacs大约需要1-2秒来加载。我可以用Mx字节编译文件将单个.el文件编译为.elc,并且可以工作。但是有很多.el文件,我想知道是否有一种方法可以用简单的命令或类似的东西来编译它们,从而加快Emacs的加载速度。我的Emacs并不总是打开的,我经常打开和关闭它,尤其是在将它设置为Total Commander中默认的edit命令编辑器以使其习惯之后(尤其是Windows xp)。 我的Emacs版本是22.3。是的,没有任何自定义的默认Emacs安装会立即启动。 我不确定在加载时首选哪个版本,通过Oo方式选择.el还是编译的.elc。 因此,是否存在一个elisp命令或Emacs命令行开关来使Emacs字节编译.emacs.d目录中的所有内容?

1
Emacs Ruby自动完成功能几乎可以正常工作
我一直在使用Rsense更新我的emacs配置,以允许在键入代码时出现自动完成下拉框。这在大多数文件中都可以很好地工作,除了我发现在我在ruby on rails项目中编辑一些代码时不允许从表中选择答案。 这是我的设置: https //github.com/map7/simple_emacs 我在Ubuntu 10.04下使用它。 对于简单的ruby脚本文件,效果很好。我可以打开一个新文件并键入。 "test".up... 就像我在向上键入“ p”字符时,会出现一个选项列表,并且我可以使用箭头键在列表中上移和下移,然后使用Enter键选择一个(例如,大写)。 什么时候不行,是当我在Rails项目的基本目录中进行完全相同的测试时。 更新: 发现问题出在(require'rails),所以emacs-rails插件中的某些内容是自动完成功能不喜欢的。 更新: 它在emacs-rails-> rails-project.el中。如果我将这个宏注释掉,则自动完成功能会起作用,否则不会: (defmacro* rails-project:with-root ((root) &body body) "If you use `rails-project:root' or functions related on it several times in a block of code, you can optimize your code by using this macro. Also, blocks …

14
如何在Emacs中实现代码折叠效果?
什么是实现诸如代码折叠或组织模式使用的循环类型之类的最佳方法?elisp创建此类行为的最佳解决方案是什么? 编辑:对不起,我不清楚。我想用elisp编写某种与代码折叠非常相似的东西,或者实际上最像具有可扩展层次结构的org-mode。我想知道实现这种影响的最佳方法。我想我听说emacs叠加是一个很好的解决方案,但我不知道。 至于折叠,我只使用内置的set-selective-display 编辑编号2: 感谢您的回答,但我想我问的是错误的问题,因此让我尝试更清楚地了解我要做什么。我想创建以下内容 当您将观点放在一个函数上并调用此elisp函数时,它将把函数定义从任何位置放到哪里(我正在考虑为此使用find-tag)并将其展开到当前缓冲区中。我的想法是,如果您必须跳转到其他缓冲区以读取函数定义,我想将其上下文切换到另一个文件。因此,我希望它的行为就像代码折叠一样,只不过它从缓冲区外部提取代码。这带来了一些问题,因为它无法将代码手动粘贴到缓冲区中,或者如果有人将其保存,则会保存提取的代码。所以我想知道是否有一种方法可以在缓冲区内创建一个区域,该区域也不是缓冲区的一部分。我认为这是有道理的。

10
如何设置Emacs窗口的大小?
我试图检测要在其上启动emacs的屏幕的大小,并相应地调整其大小和位置(在emacs中,这就是emacs的框架)。我正在尝试设置.emacs,以便始终获得一个“合理大”的窗口,该窗口的左上角靠近屏幕的左上角。 我想这对一般情况来说是一个很大的要求,因此要缩小范围,我对Windows和(Debian)Linux上的GNU Emacs 22最感兴趣。
103 emacs  elisp 


12
在迷你缓冲区中显示当前文件的完整路径的功能
我需要获取正在使用emacs编辑的文件的完整路径。 有功能吗? 如果不是,获取该功能的elisp函数将是什么? 如何将结果(路径名)复制到剪贴板,以便可以重复使用? 我正在使用Mac OS X和Aqumacs。 (setq filepath (get-fullpath-current-file)) ??? (copy-to-clipboard 'filepath) ??? 添加 (defun show-file-name() “在迷你缓冲区中显示完整的路径文件名。” (互动) (消息(缓冲文件名)) (kill-new(文件真名缓冲文件名)) ) (全局设置键“ \ C-cz”'显示文件名) 结合我得到的两个答案,我可以得到想要的东西。感谢您的回答。还有更多问题。 (file-truename)是做什么用的? 我可以将路径名复制到System(OS)的剪贴板中,而不是复制到kill ring上,以便可以将信息与其他应用程序一起使用吗?

2
emacs,取消拆分特定的窗口拆分
这可能是愚蠢的问题,但是我找不到直接的解决方案。我经常想如下拆分窗口 +--------------+-------------+ +--------------+-------------+ | | | | | | | | | | | | | | | | | | +--------------+ | --> | | | | | | | | | | | | | | | | | | | | | +--------------+-------------+ +--------------+-------------+ +--------------+--------------+ +-----------------------------+ | …
97 emacs  elisp 




1
Emacs Lisp中的setq和setq-default之间的区别
我有一个关于Emacs Lisp的问题。setq和setq-default有什么区别? 教程说setq在本地缓冲区中生效,而setq-default影响所有缓冲区。 例如,如果我在init.el中写了(setq a-var a-vars-value),我发现在启动Emacs并打开新缓冲区后,a-var也在那里,其值为a-vars-value。我以为它不应该在那里。似乎setq和setq-default之间没有区别。 我的理解有什么问题吗? 例如: 我在init.el文件中写了(setq hello 123),然后在shell中运行emacs abuffer,然后输入“ hello Cx Ce”,显示为“ 123”。当我在所有新缓冲区中运行此命令时,也会发生相同的情况。 我在init.el文件中写了(setq tab-width 4)。当我运行tab-width Cx Ce时,它显示为“ 8”(当前模式为“文本”)。但是,当我使用(setq-default tab-width 4)时,它显示为“ 4”。我无法解释这种现象。
89 emacs  elisp 


11
Emacs-调用时出错(服务器启动)
我目前在Windows Vista SP1中使用GNU Emacs 23.0.93.1。在我的.emacs文件中,我打电话给(server-start),导致消息错误~~ ..emacs.d / server不安全。有没有人看过这个并且知道修复或解决方法?...除了关闭服务器电源以外;) 这是堆栈跟踪: Debugger entered--Lisp error: (error "The directory ~/.emacs.d/server is unsafe") signal(error ("The directory ~/.emacs.d/server is unsafe")) error("The directory %s is unsafe" "~/.emacs.d/server") server-ensure-safe-dir("~\\.emacs.d\\server\\") server-start(nil) call-interactively(server-start t nil) execute-extended-command(nil) call-interactively(execute-extended-command nil nil)

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.