标签: elisp

在邪恶模式 Emacs 中定义按键序列

我在 Evil 文档中找不到任何关于定义键序列的说明。

开发人员给出的示例仅涵盖一个密钥。

(define-key evil-normal-state "w" 'foo)
Run Code Online (Sandbox Code Playgroud)

如果我想在正常模式下定义“gv”或在插入模式下定义“;RET”,我需要做什么?

例如,在 Vim 中,我只是这样做:

imap ;<cr> <end>;<cr>
map gv :tabprev<cr>
Run Code Online (Sandbox Code Playgroud)

keyboard-shortcuts emacs vi elisp key-mapping

5
推荐指数
1
解决办法
2434
查看次数

Emacs:静音消息(“回声区”)

我在 Emacs 中做了很多自动化,通过堆叠我从手动使用中知道的命令。这是我推荐的一种方法,因为它不需要太多努力:您像往常一样使用 Emacs,但时不时会出现在您的脑海中,“嘿,我总是连续使用这些命令,为什么不呢?我只是合并它们?” 由于您知道命令(按名称或快捷方式),因此更加简单。

但是,一个问题是,当您堆叠命令时,您会在“回显区域”(与迷你缓冲区相同的位置)中看到大量消息闪烁。这些消息没有任何意义,因为下面发生的一切(调用的函数)对用户来说(应该)是透明的。

那么,您可以先将静音,然后再取消静音吗?看看下面:

(defun invisible-pretty-mail ()
  "Automatize `pretty-mail'."
  (interactive)
  ; (mute-echo-area)
  (rmail-edit-current-message)
  (pretty-mail) ; lots of replace-string, replace-regexp, etc. here
                ; that will flood messages
  (rmail-cease-edit)
  ; (unmute-echo-area)
  )
Run Code Online (Sandbox Code Playgroud)

针对 sds 的回答进行编辑

我非常了解您提到的那些注释,因为它们在 Emacs 帮助系统中非常常见。

虽然您的建议一般来说并没有错,但让我们更详细地检查这种特殊情况:1) 中有一个 Elisp 函数.emacs。2)它使用了设置该功能的人非常熟悉的命令,因此它具有很强的可读性和可维护性。3)该功能完全按预期工作,4)一个缺点是它回显了太多消息。

现在,在这种情况下,您是否真的建议完全重写该功能(以及许多其他功能),使用完全不同的命令,可能存在或可能不存在的命令,作为减少我们甚至不知道的消息的可能方法会发生吗?

编辑:一个例子(有效),在我从Drew那里得到帮助之后。

(defun test-suppress-msgs ()
  (interactive)
  (let ((log-size message-log-max))
    (setq message-log-max nil)
    (message "This message is suppressed.") …
Run Code Online (Sandbox Code Playgroud)

emacs elisp lisp

5
推荐指数
1
解决办法
1687
查看次数

在 emacs 模式行中隐藏“邮件”

这是小东西,但我一直无法弄清楚:

如何在 emacs 的模式行中隐藏“邮件”?

emacs elisp

3
推荐指数
1
解决办法
286
查看次数

Emacs:查询替换、正则表达式、搜索结果重用

如何将类似的内容query-replace与部分重用搜索结果的正则表达式搜索和替换相结合?

就我而言,如何转换

程序员“有点”确信子例程“load_students”和“compute_student_grade”没有错误。

进入

程序员“有点”确信子例程 \texttt{load_students} 和 \texttt{compute_student_grade} 没有错误。

我可以使用两个query-replace,然后敲击是和否,但对于大文档来说似乎很慢。另外,我考虑在搜索中包含空格(一个 "和一个,但这在诸如... that's not the way to use "load_students", rather ...

是否有内置的东西或者你编写 Elisp 代码?

emacs search regular-expression elisp

2
推荐指数
1
解决办法
1337
查看次数