Emacs

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

1
如何对头盔查找文件中的文件列表进行排序
当我helm-find-files用来搜索目录时。我希望它首先显示完全匹配项和目录,然后再显示文件。 例如,搜索“ src”将得到以下结果: 因为它是完全匹配的,也是一个目录,如何使“ src”首先显示?否则,将其隐藏起来。文件转到列表的末尾(因为它似乎是按字母顺序排列的?)

1
重新连接时将ERC缓冲区保留在后台
我将ERC(与ZNC一起)用作IRC客户端。我加入了很多渠道,当我运行时,我的znc-all所有缓冲区都被还原,日志被重播。太好了 但是,我感到非常烦人的是,在重播日志时,每个通道缓冲区都弹出到最前面,我当时真的不能做任何其他工作。 当我暂时断开连接后自动重新连接时,这更令人讨厌。我的工作突然被这些通道缓冲区打断了,这些通道缓冲区在重放通道日志时弹出到最前面。 重播聊天日志时,如何告诉ERC / ZNC在后台保留缓冲区?我不希望Emacs曾经切换缓冲区,除非我明确要求它切换缓冲区。
10 buffers  erc 

2
议程文件中的通配符
我有一个项目的基础文件夹,~/prj,这里面我有很多个人项目,2014_prj1,2014_prj2,...,这里面我有,除其他外,一个doc文件夹。布局如下所示: ~/prj ~/prj/2014_prj1 ~/prj/2014_prj1/README.org ~/prj/2014_prj1/data ~/prj/2014_prj1/doc ~/prj/2014_prj2 ~/prj/2014_prj2/README.org ~/prj/2014_prj2/data ~/prj/2014_prj2/doc 现在,我想将所有项目目录(2014_prjX)org-agenda-files以及doc项目目录的所有子目录添加到。该data文件夹应该不会成为其中的一部分org-agenda-files,因为它们很可能包含的文件10000S。 我该如何实现?我尝试了一个简单的 (setq org-agenda-files (quote ("~/doc/notes" "~/.emacs.d" "~/prj/*/doc" ) ) 但这给了我错误 Non-existing agenda file ~/prj/*/doc

2
使正向表达式识别由关键字定义的块,而不仅仅是括号
在一种语言(茱莉亚)中,该语言具有由关键字(例如for..end,begin..end)以及括号定义的块,跳过该块的好方法是什么?另外,end它不仅是block关键字,还是在其他地方使用的有效标识符。 一种方法是查找开始/关闭正则表达式的块,并跳过所有字符串,注释和ends等,但这有点效率低下,而且有点难看。 有没有一种方法可以使emacs自己的语法解析识别出这样的块关键字,从而使其forward/backward-sexp自动工作,从而可以从例如输出中快速判断出当前块的开始syntax-ppss? [注意:我不介意自己解析文件,但是在那种情况下,我仍然想知道如何将解析器插入其余的emacs。]
10 syntax  parsing 

2
在组织模式下强制使用固定宽度字体
强制Emacs组织模式在所有地方都使用相同的固定宽度字体系列和高度(但保持其他属性(例如前景)不同)的最简单方法是什么? 例如,我可以使所有org-level-n面孔都继承自fixed-pitch,或者variable-pitch实际上引用一个固定宽度的字体,但这会很麻烦。 提前致谢。
10 org-mode  fonts 

3
重复上一次插入文字
在Vim中,您可以按.重复最新的更改,包括插入文本。 在Emacs中时,C-x z仅重复最后一个命令。我知道可以在这里使用宏,但更多的时候我意识到我需要为时已晚重新插入相同的文本。当我只需要再插入一次时,定义一个宏就没有意义了。 问:是否可以在Emacs中重复插入文本?

1
如何调试标记和字体锁定期间的错误
当进程前哨内部或字体锁定期间发生错误时,即使debug-on-error先前已启用,Emacs也不会显示回溯。 我了解为什么会捕获这些错误,在尝试显示回溯时可能会再次触发相同的错误。但是,当我想实际调试该错误时,它并不是很有帮助。我宁愿冒着Emacs变得反应迟钝的风险,而不必这样做: error in process sentinel: Wrong type argument: stringp, nil 毕竟,如果第一个实例开始变得疯狂,我可以开始第二个实例。从理论上讲,在很多地方可能发生此类错误的情况,多一点上下文将有所帮助。 那么,即使在debug-on-error没有影响的情况下,我如何强制Emacs显示回溯?
10 debugging 

1
如何右对齐区域和/或线?
我们可以使用M-x center-region和将文本居中M-o M-s。右对齐是否有类似的东西? 之前的示例: Item 0: value | Item 100: value | Item 30: value | 后: Item 0: value| Item 100: value| Item 30: value| fill-column ^ 文本右对齐的最简单方法是什么?

1
如何计算框架中的所有窗户?
正如问题所指出的,我想要一个函数,该函数可以计算该框架中当前正在显示的窗口。 所以这: +--------------+-------------+ | | | | | | | *scratch* | *Messages* | | | | | | | | | | +--------------+-------------+ | *Help* | | | +----------------------------+ 会回来 => 3 我在下面启动了一个功能: (defun count-windows () "Count how many buffers are currently being shown." (interactive) )
10 elisp  window  frames 


2
为什么主要模式不只是检查面部?
编写主模式时,知道“字符串中是否指向点?”通常很有用。“在评论中有意思吗?”。 大多数主要模式似乎都试图解析编程语言。例如: python-syntax-content 来电 syntax-ppss haskell-fill-paragraph呼叫syntax-ppss和re-search-forward c-in-comment-line-prefix-p 移动点并呼叫 looking-at sp-point-in-comment通话,syntax-ppss但还会检查是否在评论分隔符上 但是,这在某些情况下不起作用。在组织模式缓冲区中,这些方法无法正确检测源块中的注释。 这似乎也毫无意义,因为缓冲区已经显示了高亮的注释。 取而代之,您可以简单地检查以下点的人脸: (defun wh--get-faces (pos) "Get all the font faces at POS." (remq nil (list (get-char-property pos 'read-face-name) (get-char-property pos 'face) (plist-get (text-properties-at pos) 'face)))) (defun wh-string-p (pos) "Return non-nil if POS is inside a string." (memq 'font-lock-string-face (wh--get-faces …


4
如何恢复不完整的键盘宏录制?
经典用例: 您开始记录宏: C-x ( 假设您正在做一些事情hello。 假设您运行了一个引发错误的命令C-g(例如,您错误地运行了该命令,C-s而您必须使用取消该操作C-g,那么您的工作将会丢失)。 现在,您到目前为止的录制已丢失。 我想恢复我中断的地方,然后再运行一条命令中断录音。我看着C-h f start-kbd-macro,但是它是用C编写的,所以我无法对其进行调整。我还current-kbd-macro搜寻了类似的变量,但到目前为止没有找到。 可以恢复吗? 更新: 我不知道为什么C-u C-x (对我不起作用,但是我发现这是因为我正在使用进行测试C-g。 事实证明这C-g很特别-如果您触发其他类型的错误,例如 C-x ( M-: (signal 'quit nil) 然后,这将停止录制,但last-kbd-macro将包含"M-: M-( signal 'quit nil",但带有 C-x ( C-g 这将停止记录并丢弃任何记录的内容。作为对Cg满意的用户(至少有两个我的朋友),这是一个非常不幸的区别。我尝试编辑keyboard-quit,但在那里我无能为力。 看来,恢复此错误的唯一方法是通过recent-keys并自动确定在何处调用了start-kbd-macro(或类似名称),如中所示kmacro-edit-lossage。

1
如何仅针对给定模式自定义语法高亮
我想在lua-mode.el不影响其他主要模式的情况下更改语法高亮显示。 只是作为一个例子,我想“关键词”一样if,then,else是在大胆和蓝色字体时lua-mode(而不是默认的粉红色),而不必相同的高亮风格,同时编辑.tex同AUCTeX文件。 到目前为止,我已经尝试将以下代码放入我的代码.emacs,然后再放入我的代码lua-mode.el: (custom-set-faces '(font-lock-builtin-face ((t (:foreground "maroon3")))) '(font-lock-comment-face ((t (:foreground "green4")))) '(font-lock-keyword-face ((t (:foreground "dark blue" :weight bold)))) '(font-lock-string-face ((t (:foreground "dark cyan"))))) 但是通过这种方式,我在使用的每种模式下都会得到相同的语法突出显示。 这个问题可能是相关的:在不更改主模式的情况下更改语法突出显示? 有(希望简单和通用)的方法吗?

1
使用Emacs发送推文或队列
我正在使用Quitter或Twitter发送短消息。我的大多数Queets / Tweets通过Web界面发布。但是我想使用Emacs。有没有人可以使用Quitter或Twitter的好方法/模式?
10 web 

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.