Skip to content

Latest commit

 

History

History
35 lines (24 loc) · 2.81 KB

operate.org

File metadata and controls

35 lines (24 loc) · 2.81 KB

Ghost 操作

原生操作

键盘宏

宏的录制、结束和重播

宏可以是一组键盘操作的记录,我们可以反复播放这个宏来达到重复操作的目的,这样可以减少重复性的劳动。我们用 <F3> 绑定开始录制宏,用 <F4> 绑定宏的结束(在开始录制后是结束)和重播(在结束录制后是重播)。

这是一个非常方便的功能,比如我们希望打印 3 行 ***, 我们就可以进行如下输入 <F3>, *, *, *, <RET>, <F4> 之后再按 2 次 <F4> 就可以来。

当然更方便的操作是结合 C-u <num>, 这样可以指定重复的次数。

宏的计数器

我们不只可以进行静态的宏的录制,在宏中我们还可以插入 counter, 这是一个非常有用的计数器,每个宏对应一个 counter, 它会在每次插入时递增 +1 (初始值为 0)。而且更加方便的是,我们可以在进行宏录制的时候按 F3 插入 counter 。比如说如果希望打印 x0x1x2x3, 可以按 <F3>, x, <F3>, <F4> 来完成录制,然后就可以重复播放 3 次就可以完成任务。

当然这种只能让 counter 按照递增的方式进行,我们可以用 kmacro-set-counter 来设置寄存器的初始值,这样就可以完成打印 x6x7x8 这种不从 0 开始的递增任务来,同时我们也可以在打印完 x6x7x8 后再次打印 x2x3x4 。这个函数我建议绑定在 <F2>

此外,有的时候我们需要保持 counter 并不增长,比如说这种情况:

assign x0 = x[0];
assign x1 = x[1];
assign x2 = x[2];
assign x3 = x[3];

我们希望打印出两个相同的 counter, 此时可以在第 2 个 counter 的位置输入 C-u <F3> 而不是 <F3> 即可解决。更进一步,对于 C-u <num> <F3> 表示在执行完此次插入寄存器后(注意这里说的是插入后),增加一个 <num> 的值,这样适合解决不连续递增的问题。

上面的这个过程也被称为 kmacro-add-counter ,也就是递增寄存器的值。并不需要绑定特殊的快捷键,因为反正也可以用原有快捷键。

宏的管理

键盘宏也会被存在一个 ring 结构中,也就是说,可以管理来检索多个键盘宏。按理说应该是 C-x C-k 为前缀键管理键盘宏的所有快捷键,但是因为我的快捷键绑定本身的问题,所以导致无法使用这个键盘宏,于是不再讨论。

包操作

symbol-overlay

symbol-overlay 我一直当它是一个阅读代码的工具,不过我发现当我 overlay 来一个符号后,快捷键会发生一个变化,当我的光标在 overlay 上时,可以直接按 n, p, <, > 在符号间进行跳转,按 d 可以跳转到定义处,按 r 可以进行重命名,按 q 可以逐个替换,按 w 可以对符号名进行保存。