【发布时间】:2015-04-28 09:26:28
【问题描述】:
我对 emacs 有点陌生。我正在用 Latex 编辑一个文档,我想用斜体表示。我想要一个简单的宏,如果我将光标放在单词上,然后点击一个组合键,这个单词就会被斜体包围,比如\textit{word}。
是否有插件或快速方法来实现此功能或 emacs-lisp 宏?
【问题讨论】:
我对 emacs 有点陌生。我正在用 Latex 编辑一个文档,我想用斜体表示。我想要一个简单的宏,如果我将光标放在单词上,然后点击一个组合键,这个单词就会被斜体包围,比如\textit{word}。
是否有插件或快速方法来实现此功能或 emacs-lisp 宏?
【问题讨论】:
就个人而言,我在emacs 中使用AUCTeX 进行TeX/LaTeX 编辑。有很多关于如何使用它的好教程,例如A simpleton's guide to (…)TeX workflow with emacs 或 Emacs as the Ultimate LaTeX Editor。回答您的问题:是的,这是可能的,AUCTeX 提供了工具:
手册中的相关章节是Changing the Font,摘自手册:
AUCTeX 为插入宏提供了方便的键盘快捷键,这些宏指定了用于排版文本某些部分的字体。它们以 C-c C-f 开头,最后一个 C- 组合告诉 AUCTeX 你想要哪种字体:
[...]
C-c C-f C-i
Insert italics ‘\textit{∗}’ text.
如果您使用活动区域执行命令,它将将该区域放入格式化命令的参数中。如果没有区域,将插入格式化命令,然后您输入所需的内容。
通过将其与expand-region 或thing-cmds 等包结合使用,您可以将单词的格式更改为步骤
expand-region/mark-thing标记单词
AUCTeX 应用格式
可以将这两个步骤组合成一个即发即弃的功能(例如TeX-italicise-word,但是,我强烈建议不要这样做,因为(在我看来)emacs' 真正的力量来自组合函数/动作。
如果您真的坚持使用单键解决方案,我建议您阅读Keyboard Macros,它可用于以交互方式创建复合命令。
【讨论】: