【发布时间】:2015-10-30 13:17:50
【问题描述】:
我喜欢 Emacs 键盘宏功能,并且经常使用它。
有时,我不想只是静态输入某些键盘宏,但应该有一个值会在两者之间发生变化。有 Emacs 宏计数器的功能 (Macro counters in Emacs Manual)。
问题是这个计数器总是加一。有没有办法指定步进大小(即每一步向前移动 4 步)?
提前感谢您的帮助!
【问题讨论】:
我喜欢 Emacs 键盘宏功能,并且经常使用它。
有时,我不想只是静态输入某些键盘宏,但应该有一个值会在两者之间发生变化。有 Emacs 宏计数器的功能 (Macro counters in Emacs Manual)。
问题是这个计数器总是加一。有没有办法指定步进大小(即每一步向前移动 4 步)?
提前感谢您的帮助!
【问题讨论】:
你可以使用kmacro-add-counter,绑定到C-x C-k C-a。
例如要将 3 添加到计数器,请使用 M-3 C-x C-k C-a。
完整的小例子:<f3> <f3> RET M-3 C-x C-k C-a <f4> <f4> <f4> <f4> 将产生:
0
4
8
12
kmacro
有时,您可以使用tiny 来做
kmacro 在更少的击键和更好的撤消上下文中做了什么。
上面的例子可以输入:
m\n3*x4
并按下tiny-expand 的快捷方式。我是这样绑定的:
(global-set-key (kbd "C-;") 'tiny-expand)
这里,m\n3 基本上是指由换行符 (\n) 连接的 4 次重复(索引从 0 开始)。 *x4 是 Elisp (* x 4) 的简写。
【讨论】: