Emacs

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

3
如何将Unicode UTF-8显示为Unicode?
我有一些UTF-8编码的文本文件,这些文件在Emacs中显示奇怪的转义码。例如,此文本: 在ista quaestione中,临时名称“ Deus”的智力指数;secundo,响应时间为准。 在Emacs中显示如下: 这仅在Emacs中发生。其他编辑器会正确显示文本。我该如何解决这个问题? 更新1 如果我致电revert-buffer-with-coding-system并选择utf-8该文件,则可以正确读取。因此,正如Gilles正确猜测的那样,Emacs并未检测到文件编码。如果将代码添加; -*- coding: utf-8 -*-到文件中,Emacs将打开并正确显示它。 更新2 我将文件重新编码为“使用BOM编码的UTF-8”,现在在Emacs中可以正常显示。我不知道两种类型之间有什么区别,但是Emacs似乎只知道BOMED一种。

3
emacs支持能否在整个项目中进行功能声明?
emacs是否具有一个函数或库,即使它在另一个文件中定义,也可以允许用户转到该函数声明? 如果是这样,支持哪些语言? 这个问题的灵感来自下面的文章,其中讨论了emacs永远无法与IDE竞争的一些原因。 http://henrikwarne.com/2012/06/17/programmer-productivity-emacs-versus-intellij-idea/
12 project  ide 

1
什么是文件局部变量mangle-whitespace?
我知道了 ;; Local Variables: ;; mangle-whitespace: t ;; End: 各种经验丰富的Emacs程序员在许多Elisp源文件中使用。 但是当我使用describe-variableEmacs 24.3 时,没有mangle-whitespace定义任何变量。 是mangle-whitespace由Emacs的24.4提供?还是通过一些受欢迎的套餐?(我在MELPA上看不到任何名为“ mangle”的东西。) 怎么mangle-whitespace办? 注意:我在emacs标记下在此处和SO上都进行了搜索。我还尝试了DuckDuckGo和Google,搜索结果只是.el使用此文件的更多示例。Ergo在这里问。



2
直接从列表中绑定多个值,而不绑定列表本身
是否可以在不通过Emacs Lisp中的临时变量的情况下直接将多个返回值分配给变量? 例如,假设我有一个函数返回两个列表的列表: (defun test-func () (setq a '(a b)) (setq b '(c d)) `(,a ,b)) 如果我想将第一个返回值分配给list-a,将第二个返回值分配给list-b,我可以使用一个临时变量来做到这一点temp,例如: (let* ((temp (test-func)) (list-a (car temp)) (list-b (cadr temp))) (message-box (prin1-to-string list-a)) (message-box (prin1-to-string list-b))) 是否可以更简单地执行此操作?(我习惯于Perl和Python,而您不必指定临时变量)

3
如何检测当前字符是否是该主要模式的注释字符?
我正在研究将下一行拉到当前行的这个小功能。我想添加一个功能,以便如果当前行是行注释,而下一行也是行注释,则在“上拉”操作后将删除注释字符。 例: 之前 ;; comment 1▮ ;; comment 2 呼唤 M-x modi/pull-up-line 后 ;; comment 1▮comment 2 请注意,;;删除了以前的字符comment 2。 (defun modi/pull-up-line () "Join the following line onto the current one (analogous to `C-e', `C-d') or `C-u M-^' or `C-u M-x join-line'. If the current line is a comment and the …

1
从代码调用命令时如何使用“交互”参数
我有一个名为的命令test,该命令只是从用户那里获取输入并回显它: (defun test (input) (interactive "MInput: ") (message "%s" input)) 我想编写另一个函数来调用它。以下失败: (defun test-forward () (interactive) (test)) 这个错误 test-forward: Wrong number of arguments: (lambda (input) (interactive "MInput: ") (message "%s" input)), 0 这是有道理的,因为test需要一个输入。制作test的input &optional只是使test-forward回报nil没有做任何事情。正确的做法是什么?
12 elisp  commands 

4
如何自定义组织模式缩进?
之所以会出现这个问题,是因为我喜欢使用非等宽字体(Sabon,Minion,Garamond等)。这在使用org-indent-mode时会引起问题,因为标题下的文本现在与标题不对齐。例: 字体是格鲁吉亚。现在,如果我改用consolas: 我认为问题在于,在非等宽字体中,“空格”和*不会占用相同的空格。虽然我不知道该如何解决。我已经搜索了互联网,却找不到适合自己调整缩进的教程。我已经尝试阅读org-indent.el,但这对我来说是一个漫长的过程。非常感谢您的帮助!

5
毫不干扰地改变文本呈现的方法?
我正在编写用于语音识别的emacs扩展,并且正在寻求有关特定功能的帮助。语音识别器(Dragon)的某些单词识别能力始终很差-训练了几次并不重要,这只会使您无法识别某些单词。通常,在同一时间写主题或编码时,一遍又一遍地使用很多相同的单词。 因此,我编写了一种使用覆盖层来更改单词在缓冲区中的呈现方式的模式。它在单词中使用随机字母,在其下方用随机颜色加下划线,并在其顶部放置随机变音标记(重音符号,变音符号等)。这是屏幕截图(您可能需要缩放以查看标记/下划线): 然后您可以说“紫色p头发”,它将在单词“ a”下寻找带有紫色下划线的单词,并带有一个变音符,看起来像头发,然后为您键入该单词。因此,在上面的屏幕截图中,这将导致emacs为您键入“ regexp-quote”。 这个想法是让您使用识别器一贯擅长识别的有限词组来引用屏幕上已经使用过的任何词组。 它工作得很好,只是偶尔会发生碰撞。为了做到这一点,我可以学习一致地引用单词,就像我使用单词的md5哈希中的字节一样,而不是(random)让算法分配更改以免发生冲突。我只发现了6种易于区分的颜色(当下划线只有一个字符宽且只有一个像素厚时很难做到)和3种易于区分的变音符号(易于区分彼此,并且与上面的下划线也不能混淆线或与下划线重叠的位置),请参见上方来源上方。 我需要更多方法来更改渲染,以减少碰撞频率。理想情况下,渲染修改将: 不要被其余的文本所震撼。例如,这导致我忽略了反视频属性。 不容易与其他更改混淆。上划线很容易被误认为前一行的下划线。除非字体大小不切实际,否则许多变音符看起来都差不多。 在空间上靠近其他变化所在。现在,一旦我的眼睛找到了目标角色,所有的信息,标记,下划线和字母就在那里。 可以正确显示变音标记的固定宽度字体(编码所需)很好地工作(我必须从Consolas切换到DejaVu Sans Mono,以使标记正确呈现) 在拉丁字母上工作。例如,有阿拉伯文的组合标记,但它们不与拉丁字母字符组合。 不要更改字母的颜色,因为它已经用于语法突出显示。 实际上可以在emacs中使用emacs lisp;) 也许有特殊的unicode字符控制渲染,可能会被滥用以开辟新的可能性?还是一种加粗下划线的方式,以便我可以轻松区分更多颜色?还是其他一些晦涩的emacs功能,可让您在unicode之外的字符顶部显示标记?

2
是否可以将回声区域置于光标旁边?
问题:我发现将我的眼球从光标所在的位置上下移动到底部回声区域很累。 问题:是否可以使回声区域像工具提示一样动态地分配到我的光标附近?我搜索了软件包,但找不到一个。我不认为这是个新主意,必须有人做。
12 echo-area 

2
如何在组织议程模式下查看TODO关键字的层次结构?
我在某种层次结构中有各种各样的(简单的)任务。 * TODO Make a pizza ** TODO Get cheese *** TODO Buy a cow ** TODO Get tomatoes *** TODO Grow tomatoes **** TODO Buy tomatoes ** TODO Buy oven *** TODO Win Lottery **** TODO Buy Lottery ticket 如果我在组织议程中查看这些内容,则会以固定的方式显示它们: .TODO: TODO Make a pizza .TODO: TODO Get cheese …

1
当PWD在shell模式和term模式下更改时,自动更新默认目录
default-directory如果在shell-mode和中更改了工作目录,是否有任何选项或软件包会导致更新term-mode?即,当使用时cd,但该解决方案必须比仅查找此特定命令和其他一些命令更强大- $PWD我认为,它实际上应检查每个命令之后的值。 更重要的是,当从最初创建为本地目录的shell-mode或term-mode缓冲区内部连接到远程计算机时,它也应该起作用default-directory。这实际上是我真正需要的功能:能够以编程方式告诉我在此类终端中键入的命令是否在远程计算机上运行。我想以适当设置的形式获取该信息,default-directory并确定是否有一种获取方法,那么如上所述,执行此操作的工具也将在本地运行。

1
在所有打开的缓冲区中禁用次要模式
通常,我会打开许多​​缓冲区,并且由于某种原因,我不再希望对它们使用特定的次要模式。当前是否有内置方法来禁用所有打开的缓冲区的特定次要模式,或者这是否需要编写自定义elisp函数?

1
使用AUCTeX自动缩进\ if语句
涉及if -like语句的AUCTeX原始tex代码的当前行为是在与周围条件相同的级别上缩进条件语句。即代码如 \if@sometoggle% \dosomething% \else% \doanotherthing% \fi% 显示为一大段文字。我想使AUCTeX代码段缩进如下: \if@sometoggle% \dosomething% \else% \doanotherthing% \fi% 这可能吗?

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.