Emacs

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


2
是否可以通过按键插入正确的`(kbd“…”)`?
我无聊查找该kbd功能的键名,有没有一种方法只需按一下键即可自动插入正确的键名? 因此,例如,我想要执行以下操作:我正在输入 (local-set-key | 我跑步magical-insert-kbd-command,按f6键,我得到 (local-set-key (kbd "<f6>") |

2
在框架底部显示单词列表?
我想在我打开的每个emacs框架的底部(尽管顶部也可以)水平地在单独的行上显示3个单词列表。我已经想到了6种方法来解决这个问题,但是它们都有问题: 我的第一个想法是在模式行中添加一行,但是AFAICT不能在模式行中使用换行符,它只能转换为“ ^ J”。 我的第二个想法是使该行横穿屏幕顶部并使用标题行,但它也不支持换行符。 我可以在窗口的最后三行上显示一个叠加层,但是要使其健壮起来似乎很困难-当点到达该叠加层时(而不是窗口的实际末端),需要触发滚动,并且我必须不断地重新定位覆盖层,因为覆盖层位于文本空间而非窗口空间中。 我可以尝试在框架的底部制作专用窗口。我已经尝试过对此进行编码,但是它也不是很健壮,当框架中已经包含分割窗口并且我不得不将Cx,1重新绑定到可忽略的自定义版本的delete-other-windows时,它似乎无法正常工作我的特殊窗户,我肯定还有其他情况。同样,当一个帮助窗口弹出时,它会垂直弹出,因为它认为已经存在一个水平分割线(从技术上讲,它已经存在了,但仅显示一个单行窗口)。 我可以为此设置一个专用框架,但随后我的配置将无法在终端模式下运行,并且必须编写脚本窗口管理器以使其保持在屏幕底部,以使其无法选择,而不影响布局,等等等 我可以将3行的文本直接插入minibuffer中。我得到了部分工作,可以增加迷你缓冲区以适应3条线,并可以显示它们。但是,任何时候只要回显任何消息,这些行就会消失,直到我发出另一个命令,然后它们才重新出现。理想情况下,这3条线和回波区域不会重叠,因此我可以看到两者。如果我可以可靠地过滤哪些消息进入回显区域,这将不太烦人-我在EmacsWiki上找到了一个解决方案,但它似乎不适用于源自emacs C源代码的消息(特别是我想获得删除文件保存消息,因为我经常在计时器上自动保存)。 对于上下文,我的目标是不断显示当前缓冲区中最常用的单词,当前缓冲区中最近的单词以及当前缓冲区中最近使用的单词。我打算能够通过语音命令将它们插入缓冲区。因此,我可以说“最近2”,并让它从单词最近点的列表中选择第二项并插入。我只关心单词列表对于我当前正在编辑的缓冲区是否可见。我不想使用各种代码完成模式使用的弹出窗口,因为我需要列表始终可见。

3
Emacs是否有拾色器?
我使用出色的rainbow-mode颜色突出显示CSS文件中的颜色。 但是,这假设我知道我想要什么颜色。我可以在Emacs中进行CSS编辑时使用任何颜色选择器吗?理想情况下,我真的很希望我可以使颜色稍微更暗/更亮/更红/更绿,例如Firefox颜色选择器: 另外,我注意到customize-face从548种颜色中提供了一种颜色选择器。我可以将其用于CSS吗?
20 colors 


3
为什么存在lisp-interaction-mode,我们是否需要它?
问:为什么lisp-interaction-mode存在,有什么理由代替它使用emacs-lisp-mode? 该手册指出,emacs-lisp-mode和lisp-interaction-mode是不同之处在于后者结合相同C-j到eval-print-last-sexp。除此之外,“ Lisp交互模式下的所有其他命令与Emacs Lisp模式下的相同。” 据我所知,只有*scratch*缓冲区使用后一种模式。 我感到奇怪的是,有一个整体模式与另一个模式只有一个按键绑定是不同的,所以我想我缺少一些历史或上下文。 所以: 为什么lisp-interaction-mode存在? 不计算C-j键绑定,在任何情况下都更可取emacs-lisp-mode? 将缓冲区的模式更改为*scratch*emacs-lisp-mode会不会有任何意外的后果? 这个问题的动机是,现在,我将键绑定两次(在两种模式下),以便*scratch*缓冲区的行为就像访问*.el文件的缓冲区一样。如果没有实际的理由可以lisp-interaction-mode解决,那么我就(setq initial-major-mode 'emacs-lisp-mode)解决了。


3
使用Emacs守护程序时终端和图形框架的不同主题
我正在尝试在Emacs24中实现以下行为: 我喜欢使用不同的主题(日光与日光),具体取决于我是否通过端子架连接到正在运行的服务器 % emacsclient -t 或带有gtk框架 % emacsclient -c 这似乎在较旧的Emacs中有效,但是当前的Emacs我找不到方法。我经常检查SO(例如/programming//q/18904529/152439和答案)和邮件列表(例如https://lists.gnu.org/archive/html/help-gnu-emacs/ 2012-02 / msg00227.html和https://lists.gnu.org/archive/html/help-gnu-emacs/2012-02/msg00237.html)。 我当前的设置如下所示: (add-to-list 'custom-theme-load-path "~/.emacs.d/themes/solarized") (if (daemonp) (add-hook 'after-make-frame-functions (lambda (frame) (select-frame frame) (if (display-graphic-p frame) (load-theme 'solarized-light t) (load-theme 'solarized-dark t) ) ) ) (load-theme 'solarized-light t) ) 问题是,如果我打开一个图形框架,然后使用打开一个终端框架emacsclient -t,则主题solarized-dark会同时应用于新的终端框架(正确)和已经打开的图形框架(应该保留)最好保持原样)。当终端框架已经打开并且我使用打开一个新的图形框架时,就会发生这种情况emacsclient -c。 编辑:万一当前的Emacs24无法做到这一点,是否有任何计划使其再次成为可能?
20 frames  daemon  themes 

1
如何防止面部流到缓冲区周围?
问:如何org-mode避免链接面渗入...折叠页眉末尾的选择性显示字符中? 这是一个视觉上的滴答声,使我有点生气。在中org-mode,当链接是一行中的最后一个内容时,链接面会渗入到...,表示标头已折叠。例如,如果链接后有空白空间,则不存在出血。 我发布的屏幕快照演示了该问题。第三行是有问题的行,在链接的末尾和行尾之间没有字符,而第四行则显示了一个链接,后跟一个空格: 首先,为什么会这样?其次,更重要的是,如何使它停止? 更新1:根据评论,下面是缓冲区的屏幕截图,其中标题已关闭且已打开。我已经打开了没有初始化文件(即emacs -Q),required org模式的Emacs ,并打开了此示例文件。因此:在我的设置中,它似乎并不奇怪。 所有标题已关闭: 所有标题均打开: 尽管在使用solarized主题以及默认主题(如新的屏幕截图)时遇到了相同的问题,但我上面一直使用的主题是墨水瓶。 Emacs版本是24.3.1。使用组织版本7.9.3f(即与该Emacs版本捆绑在一起的版本)以及8.3beta时,我得到相同的结果。 更新2:这是响应评论请求的最小工作示例: * here's a header with a [[~/somefile.txt][link at the end]] - This one's a problem - Interesting note: + put the cursor immediately *after* the *d* in "end" with the header closed/folded * the face no longer …
20 org-mode  faces 

4
在图像模式下缩小/缩放/缩放图像
使用Emacs的doc-view-mode,我可以轻松地缩小/缩放/等PDF,但是,我希望能够对图像执行相同的操作。当前,当我打开图像时,无法调整缩放水平以使其适合框架。我知道有image-mode-fit-frame,但是,当图像大于我的屏幕时,它无济于事。 是否有可让我放大和缩小图像的程序包或模式?


3
如何在emacs帧中间显示minibuffer的内容?
在最大化的Emacs框架上工作时,很难看到屏幕底部显示的minibuffer / echo区域的内容,但是当键入命令时,这也会导致失去对正在编辑的文本的关注–这相当可用性方面的问题 有没有办法在minibuffer处于活动状态时将当前minimacs缓冲区的minibuffer / echo区域移至正在编辑的文本上方,或者更好地捕获minibuffer的内容并将其显示在中心键入命令时当前缓冲区的大小?
20 minibuffer 

3
如何妥善处理init文件中的错误
我想要一种在运行初始化文件时捕获错误,然后优雅地处理它们的方法。我的许多最重要的自定义项和键绑定都显示在初始化文件的末尾,以确保其他设置不会套用在它们之上。问题是,当初始化中止得很早时,在没有应用我熟悉的键绑定和设置的情况下尝试调试问题会感到完全瘫痪。 发生错误时,是否有任何方法可以正常完成初始化过程?


2
如何使用“字符级”差异显示两个缓冲区之间的差异
比较两个缓冲区的差异时,M-x ediff-buffers不表示单词内已更改的特定字符(即“字符级”差异)。大多数现代的差异工具会在一个单词中显示差异。 默认情况下,Emacs似乎缺少此重要功能(或显然有用吗?)。如何使Emacs按字符显示差异? 更新 此处的M-x ediff-buffers diff1 diff2,emacs -Q用于确保我的主题不会干扰: 这是粘贴到Meld中的相同文本:
20 ediff  diff-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.