更改Emacs-AUCTeX中单词的格式而不实际选择它

时间:2013-09-01 03:13:53

标签: emacs lisp auctex

现代文字处理器的一个很好的特点是,人们可以改变单词的格式(例如,从罗马到斜体)而不实际选择它;只需要将文本光标放在单词中并告诉文字处理器(通过键盘快捷键)更改其格式。 (智能编辑,我相信它有时被称为。)

在Emacs-AUCTeX中有没有办法做到这一点? (更改格式的常用方法 - 即插入格式命令---是选择单词[标记其区域],然后按下命令的组合键[例如C-c C-f C-i以插入{ {1}}]。)

2 个答案:

答案 0 :(得分:1)

如果现场没有解决方案,Emacs基本上提供了两种方法,一旦知道了一系列命令/键:

要么将它们存储到键盘宏中,只需要用一个键调用它 - 或者将所有命令放入一个函数中,使其成为一个命令,分配一个键。

答案 1 :(得分:1)

快捷方式 C-c C-f 调用TeX-font。然后它强调/斜体/无论如何, 基于最后一个关键的和弦。所以解决方案是建议这个功能:

(defvar TeX-font-current-word t)

(defadvice TeX-font (before TeX-font-word (replace what))
  "If nothing is selected and `TeX-font-current-word' is not nil,
mark current word before calling `TeX-font'."
  (when (and TeX-font-current-word 
             (not replace)
             (not (region-active-p))
             (not (looking-at "\\s-")))
    (unless (looking-back "\\s-") (backward-word))
    (mark-word)))

(ad-activate 'TeX-font)

现在,当没有选择任何区域时,TeX-font将像当前单词一样工作 被选中了。您可以通过将TeX-font-current-word设置为t / nil来启用/停用此行为。