Emacs

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

1
如何运行emacs的多个版本进行软件包开发?
有一套工具可以在多个Emacs版本上测试软件包。例如24.4即将发布。我可以安装它并且仍然可以安全地在24.1中测试我的软件包吗? 如何处理冲突的.emacs.d /? 我在Github上遇到了一个回购,上面写着 当前,整个Emacs 24系列(24.1–24.4)都支持名称。 并且意识到我不知道如何在多个Emacs版本上干净地完成测试。

2
我应该在哪里包含惰性初始化?
我想向乳胶模式添加特定的键绑定: (define-key latex-mode-map (kbd "<f6>") 'my-latex-defun) 同时,我只想在加载特定模式时进行设置。因此,我想知道在使用适当的hook(latex-mode-hook)完成此操作或使用子句(with-eval-after-load "tex-mode" ...包装键绑定定义之间是否存在偏好(最佳实践)。我对它们都进行了测试,但是它们都可以正常工作,但是我想知道哪种方法是正确的。
13 init-file  hooks 

6
如何获取缓冲区(而不仅仅是文件)来兑现自动模式警报?
问:如何获取新的缓冲区以遵守其中的映射auto-mode-alist? 找到文件时,Emacs会将文件扩展名与进行比较,auto-mode-alist以确定用于文件缓冲区的主要模式。有没有一种方法可以使用这些信息auto-mode-alist来确定尚无文件关联的缓冲区的模式? 那就是:如果我打开一个名称类似于文件扩展名的新缓冲区,是否可以使其以预期模式自动打开?例如,如果我要打开一个a-new-buffer.el尚未与文件关联的新缓冲区,我希望它以emacs-lisp-mode默认模式而不是默认模式打开。

2
为什么emacs包含游戏和娱乐功能?
自从我还是大学一年级学生以来,这个问题就使我感到困惑,因为我试图在实验室中巧妙地轻描淡写地穿过Dunnet,而我的教授没有注意到。为什么世界上emacs都带有游戏和娱乐功能?为什么要在文本编辑器中包含游戏? 对于这个问题,我正在寻找准确的历史摘要。从一开始就在emacs中存在游戏吗?总是以愚蠢的娱乐为特征吗?是否有人开玩笑地打包了第一个包含的游戏,每个人都喜欢它?这是迷失于时间的谜团吗?
13 package 

1
如何控制在哪个窗口中显示缓冲区?
问:如何控制org-deadline显示日历的窗口? org-deadlinecalendar设置截止日期时,会暂时在窗口中弹出缓冲区,然后在完成后再次将其关闭。当只有一个窗口时,它将在现有框架的底部弹出一个新窗口。当有多个窗口时,它会get-lru-window从可用窗口中选择一个(我认为类似)。 如果它接管了具有我需要的信息以设置截止日期(日期,时间等)的其他窗口之一,则后者是有问题的。这在诸如以下的窗口设置中通常是一个问题: +--------------------+--------------------+ | | | | | (B: mu4e header) | | | | | +--------------------+ | (A: agenda file) | | | | | | | | | | (C: mu4e view) | | | | | | | | | | +--------------------+--------------------+ 在(A)的议程文件中添加截止日期时,org-deadline将接管(B)或(C),其中包含具有我需要的日期/时间信息的电子邮件。我更喜欢,如果我org-deadline从(A)调用,它将弹出一个临时窗口(D)包含如下calendar缓冲区: +--------------------+--------------------+ | | …
13 org-mode  window 

4
使用挂钩设置主要模式键与将其添加到模式图之间的区别
假设我已经下载了一个名为的主模式magical-mode,它有自己的神奇键盘映射magical-mode-map。此模式还提供了一个钩子magical-mode-hook,该钩子每次magical-mode成为缓冲区的主要模式时都会运行。现在,我想修改我的初始化文件,以添加一些自定义键绑定以在该模式下使用。 似乎有(至少)两种方法来为设置自定义键绑定magical-mode。我最常看到的是: (defun my-magical-keys () (local-set-key (kbd "C-i") 'previous-line) (local-set-key (kbd "C-k") 'next-line) (local-set-key (kbd "C-j") 'backward-char) (local-set-key (kbd "C-l") 'forward-char)) (add-hook 'magical-mode-hook 'my-magical-keys) 但是也可以这样进行: (define-key magical-mode-map (kbd "C-i") 'previous-line) (define-key magical-mode-map (kbd "C-k") 'next-line) (define-key magical-mode-map (kbd "C-j") 'backward-char) (define-key magical-mode-map (kbd "C-l") 'forward-char) 第二种方法对我来说似乎更干净。 一种方法比另一种方法有任何优势吗?

2
安全的启用本地变量的方法?
大约18年前,我从一个朋友那里继承了.emacs文件。中间隐藏着以下关于此enable-local-variables功能的安全隐患的不祥评论警告: ;; Date: Wed, 7 Dec 1994 11:57:50 -0600 ;; From: blob@syl.dl.nec.com (David Blob) ;; Subject: Self-extracting emacs elisp code ;; ;; With all this talk about self extracting mail "viruses", a friend ;; showed me that in emacs (which I use to read mail, along with vm) ;; has …

7
邪恶:以vim方式映射键盘绑定?
我试图使Evil函数evil-jump-to-tag,C-]行为像Emacs绑定M-.。 正常行为适合浏览标签文件,但我希望它也适用于Slime slime-edit-definition,Elisps elisp-slime-nav-find-elisp-thing-at-point,Clojures cider-jump-to-var等。 这些主要模式以及更多其他模式已经将等效的跳转绑定绑定到了键绑定上M-.。 为了在Evil模式下获得相同的行为,我是否需要为每种模式本地绑定一个键绑定,或者是否可以进行一个键绑定并告诉Emacs,每当按下此键时,请使用对该键绑定的功能在Emacs模式下?
13 keymap  evil 

1
为什么不能将函数绑定到键或用Mx调用它?
我编写了一个函数,我想通过Mx调用它,并将其绑定到键上。这是我的功能: (defun my-function () (message "This is a great function")) 如果尝试使用调用它M-x my-function,则会[no match]在迷你缓冲区中收到错误消息:。 如果我尝试将其绑定到键(或单击鼠标): (global-set-key (kbd "C-c a") 'my-function) 它似乎可以工作,但是当我尝试用调用时C-c a,出现错误 类型参数错误:commandp,my-function 为什么我不能使用我的功能?

2
我可以关闭或切换js2-mode的语法检查器吗?
我的默认设置为js2-mode。这样可以很好地突出显示和检查语法,但是我现在正在一个具有不同样式集的项目(特别是这个新项目不使用分号)。 这会在每行代码的下面js2-mode加上警告:missing ; after statement 有没有一种方法可以禁用语法检查js2-mode? 或者,甚至更好的是,有没有办法使用不同的语法检查器? 我已经为我的.js文件安装并运行了Flycheck模式,但是我没有启用任何语法检查器(即,所有检查器都设置为nil和not found)。知道如何启用其中之一并禁用内置的功能将是很棒的js2。 我知道分号插入的观点各不相同,但是该项目遵循"standard style"Flycheck中有一个语法检查器的项目,我只是想知道是否可以切换检查器。

3
可以将org-babel结果作为代码注释输出吗?
在博客,教科书等中,通常将某些代码的结果显示为注释,例如: (+ 1 1) ;=> 2 有没有一种方法可以使用Org-Mode的Babel功能自动显示这样的结果? 具体来说,我想要的是能够指定这样的标头: #+begin_src scheme <some headers> (+ 1 1) (/ 4 (* 2 2)) #+end_src 我将变成以下内容C-c C-c: #+begin_src scheme <some headers> (+ 1 1) ;=> 2 (/ 4 (* 2 2)) ;=> 1 #+end_src 然后,如果我做了一些更改,像这样... #+begin_src scheme <some headers> (+ 1 5) ;=> 2 …

4
如何取消突出显示高亮符号的符号
highlight-symbol-at-point 确实有用,但是我找不到取消突出显示符号的简便方法。 目前,我必须unhighlight-regexp为每个突出显示的符号重复调用。 是否有更好的方法来: 取消突出显示缓冲区中所有突出显示的符号 取消显示符号?

1
获取组织模式下的时钟时间时间表
为了弄清楚我如何度过的时间,我开始使用org-clock-in和记录我在不同任务上花费的时间org-clock-out。 例如,当我意识到自己应该在20分钟前开始计时时,经常会发现自己手动编辑时钟条目。那么,有没有办法查看a)当前正在运行的时钟(或者由于我在退出Emacs之前忘记了退出时钟而没有正确终止),以及b)时钟条目列表? 我可以获得一张表,该表显示了我在每个任务上花费的总时间,但是我无法获得一个列表,其中说: 9:00--9:30 Project A 9:18--10:00 Project B 10:00--11:00 Meeting 11:45--13:00 Lunch 这让我看到了重叠的时间(例如上面的项目A和B)和差距(例如会议和午餐之间的时间)。有这样的事吗?


7
哪些软件包可用于模式编辑?
Emacs中有哪些软件包可用于模式编辑?您使用什么,为什么? 让我们尝试为每个答案发布一个软件包。我建议提及每个软件包的优点和缺点。 这是我对模式编辑的定义(找不到专门的Wikipeadia文章): 模态编辑 -文本编辑的样式,当用户通常在按键不引起其字符插入而通常在“正常模式”之间切换时,而对按键进行相应的文本操作则是在文本上执行各种操作,而在按键插入相应字符时进行“插入模式”。当然,可能还有更多模式。大多数现代编辑器都不是模态的。Vi(Vim)是模式文本编辑器的一个示例。

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.