Emacs

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

3
如何将键盘宏另存为Lisp函数?
我经常需要执行需要多个击键的一组步骤。对于同一会话,可以将这些步骤记录在键盘宏中。 一个示例是将频繁执行的搜索/替换操作另存为键盘宏。但是当我退出emacs时,该宏丢失了。 如何将常用的键盘宏另存为Lisp函数? 为了简单起见,我想将用“ def”替换“ abc”的动作保存为一个函数,以便可以在emacs会话中重用它。

1
如何解决非常慢的Emacs?
我正在写文档,我对Emacs的性能有疑问,我认为这是昨天才出现的。我没有在我的init文件中进行任何更改或安装任何新软件包。 问题是,在我写作时,在按下键盘上的字母和将它们显示在屏幕上之间存在非常明显的滞后。有时,我在输入完单词后会看到它们仍在屏幕上打印。 我不知道是否还有其他问题,除了打字速度(我只能猜测是有问题)之外,但我没有注意到它们。 什么会导致此问题? 是由Emacs引起还是由于我的PC的性能?通常,哪些因素会影响Emacs的性能? 我的Emacs版本是GNU Emacs 24.3.1 主要活动模式是: 胶乳 次要活动模式为: 自动完成 自动合成 自动压缩 自动加密 闪烁光标 文件名阴影 字体锁定 全局自动完成 全局字体锁定全局高线 电话号码 鼠标滚轮 贝壳目录 表演派 Smartparens 全球Smartparens 工具提示瞬变标记

3
我怎样做才能加快启动速度?
我可以做些基本的事情来减少启动时间? 就此而言,我是否需要特别注意什么? 注意:可以通过减少启动Emacs的频率(每次会话一次)并在正在运行的实例中打开文件来减少启动时间。这个问题是关于最小化启动时间,会话启动或需要启动Emacs的任何其他时间。 另请参见在Stack Overflow上回答的同一问题,问答得分超过50和30多个“收藏夹”书签。好的答案应该超出Stack Overflow的可用范围。

3
如何轻松地用magit挑樱桃?
我已经使用magit几个月了,我非常喜欢。但是我仍然在码头上做的一件事就是采摘樱桃。 有什么简单的方法可以做到这一点?
40 magit 

2
为什么elisp没有名称空间?
问:为什么elisp没有名称空间,我们如何获得它们? Elisp除了全局名称空间外没有其他名称空间,这导致了编码约定,即为所有全局函数,变量和常量加上唯一的前缀。 除了烦人的因素外,考虑到以下因素,这还令我感到震惊:1)强大的库和程序包数量不断增加,以及2)遗留不遵守前缀约定的传统函数和变量的持续存在,或者具有足够的特质,因此实际上并没有一个好的前缀选项可以使用。这也意味着定期尝试对较旧的代码进行合理化(例如从cl到的转换cl-lib)是一项艰巨的工作。(尽管我为清理感到高兴,但每次输入诸如此类的文字时,我还是会流下眼泪cl-find。) 我四处逛逛,看看是否能找出为什么elisp在使用了几十年后仍然没有命名空间,但对适度的收获感到有些惊讶。关于名称空间的Wiki页面很短。 Nic Ferrier对这个问题的处理时间稍长,并且在emacs-devel上也有一个相当新的话题。从2010年开始就有一个旧的Stack Overflow线程,讨论使用宏实现名称空间的可能性。宏方法的另一个示例可以在这里找到。至少有两种实现(在这里和这里,并在此处描述后者)。),但他们已经有两年没有看到太多活动了,而且我还没有遇到任何使用它们的图书馆。 我认为,如果添加名称空间很容易,那就已经可以了。所以: 向elisp添加名称空间的技术障碍是什么? 添加名称空间会破坏很多现有代码吗? 此功能是否需要有机地消除(对解释器本身的更改),还是真的可以通过宏在顶部构建?
40 elisp 

9
如何开始学习Emacs Lisp?
背景: 我主要是vi用户,并且正在转换为Emacs。 超越了基础知识,现在将其用于用C和一些计划编写R转换的Python编写代码。 二十多年前,当我在读研究生时,我写了(Common)LISP好几年了,但现在我已经严重失误了(可以打个招呼世界,仅此而已)。 题: 您对我这个位置的人有什么建议,以使其能够学习Emacs LISP环境并开始入侵Emacs。 是否应该阅读书籍,博客,资源和练习?

4
如何从Projectile中排除文件?
我使用的是前奏中的头盔弹头设置,这对我的工作流程有很大的改进。剩下的唯一问题是自动生成的文件(例如,由CMake生成的文件),这些文件会在helm-grep和类似操作期间显示。 问题:有没有办法从Projectile中排除项目文件夹树中的文件?
39 projectile 

2
组织模式下的智能拼写检查
默认情况下,M-x ispell-buffer以组织模式运行的结果非常令人失望。 Ispell看起来在:PROPERTY:抽屉内部,通常包含诸如 :ID: 797495bd-581b-4a42-883b-c2a55a08f08a 它尝试更正org语句!例如,它抱怨的SRC中 #+BEGIN_SRC emacs-lisp 它进入组织块内部。我想这对于诸如之类的块可能有用#+BEGIN_QUOTE,但是在源代码块中却很愚蠢。 是否有一个软件包可以解决所有这些问题? 我很想拼写检查我的写作,但是我得到的假阳性数量使它变得不可行。 如果重要,则操作系统的拼写检查器为aspell。

7
基于树的目录浏览器?
我喜欢下苦功夫,但有时(尤其是在拍摄截屏影片时),我想查看目录及其子目录的树结构,例如tree(1)命令。Emacs是否有一个面向树的目录浏览器?

12
如何在缓冲区的两个位置之间来回切换
有时我发现自己经常在两个要相互编辑的函数之间交替使用。在这种情况下,继续执行操作C-s <functionname>以切换到其他功能,然后找到我之前编辑的确切位置,既麻烦又痛苦。 如何设置标记,然后轻松地在缓冲区中的两个位置之间来回跳转?


4
如何覆盖主要模式绑定
有时,我的全局键绑定被主要模式覆盖。一个简单的例子是我的init文件中的以下设置 (global-set-key (kbd "C-j") 'newline-and-indent) 但是,令人讨厌的是,这种键绑定被暂存缓冲区的默认模式“ Lisp Interaction”主要模式隐藏了。 当我发现自己处于主要模式(或次要模式)隐藏全局键绑定的情况时,如何找回它? 注:我的问题是不是“我怎样才能绑定C-j到newline-and-indent‘?模式’” Lisp的互动 我对一个更通用的答案感兴趣,该答案关于如何处理因某些主要/次要模式而被隐藏的冲突或用户键绑定的键映射。

2
使用IPython 5时奇怪的shell输出
我刚刚升级到最新版本的IPython,现在在emacs中使用它时出了点问题。 当在常规的终端中使用它,它工作正常(颜色,标签完成等),但是无论是在M-x eshell或M-x shell代替outputing In [1]:,它实际上输出[?12l[?25h和Out[1]输出到[J[?7h[?12l[?25h[?2004l[?7hOut[1]:。 也许这是IPython使用的emacs上没有的终端的某些功能,但是我想知道它是哪一个。 Terminal.app: In [1]: 2+2 Out[1]: 4 埃马克斯 [?12l[?25h2+2 [J[?7h[?12l[?25h[?2004l[?7hOut[1]: 4
37 shell  eshell  ipython 


3
内联逐字记录和带Org模式下的引号的代码
在组织模式下,我可以用=或包围文本,以内联逐字或代码模式~放置文本。 但是,如果文本带引号,则此操作将失败,并且我在文档中找不到解释或解决方法。 例如: =hello= 逐字呈现 ~hello~ 渲染为代码 =hello'= 无法逐字呈现 ~hello'~ 无法呈现为代码 到目前为止,我发现的唯一解决方案是插入不可见的字符,例如键入C-x 8 <RET> 200b <RET>,如本问题所述。 为什么会这样(这是一个错误?),如何在不插入不可见字符的情况下避免此问题?
37 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.