什么叫emacs中的响铃?

时间:2010-10-15 15:23:47

标签: emacs elisp circular-buffer

与windows风格的自解释复制/剪切/粘贴命令不同,我无法理解emacs中的响铃概念。

由于我不经常在emacs中编程,我可能没有意识到环功能的价值。你能告诉我emacs中叫什么铃声以及如何使用它?

5 个答案:

答案 0 :(得分:12)

好吧,让我试着用简单的话说。每次复制( Mw )或剪切( Cw )时,选择都会插入到所谓的环的 top 中(这就像封闭式的清单)。

有趣的部分来了。现在,如果您使用 C-y 粘贴,则最近粘贴的区域(现在是环的元素)将插入缓冲区中。如果你继续按我的,那么文本将被环中的旧元素和旧元素连续替换,所以说,旋转环并将旧文本指定为 front 元素每次。这使您可以访问较旧的剪切/复制文本。

有用的部分并未在此结束。如果您剪切/复制其他一些文本,它将被插入到环的顶部,并且环将再次旋转,使 top 现在是。您可以再次启动 C-y M-y 序列,新插入的文本指定为

所以,总结一下:

  • 环的 top 是插入新复制/剪切( M-w / C-w )文本的位置。发生这种情况时, top 元素将成为 front 元素。
  • 环的元素是粘贴(aka yank)命令 Cy My 操作的位置,方法是将其插入缓冲区。 M-y 也会旋转戒指,使戒指中的旧文字成为前面

您可以通过想象固定在12小时位置的圆圈来显示它,但不是环的一部分。 top 是环的一部分,所以当某个命令旋转环时, top 也会旋转。

alt text

答案 1 :(得分:4)

每次在Windows中将某些内容复制或剪切到剪贴板时,您都会丢失之前剪贴板上的内容。 (虽然有些程序会为你存储以前的剪贴板内容)emacs“ring”将存储旧的剪贴板内容,即使你复制/猛拉/剪切/杀死东西。如果你习惯它可以很方便,因为它可以让你一次在剪贴板中存储多个东西,并减少意外覆盖你切入剪贴板的东西的机会,就像在Windows中一样。

答案 2 :(得分:3)

环是循环缓冲区。想想一个rolodex。

如果你正在杀戮/ y一个戒指,那么你可以在你的历史中前进和后退。

答案 3 :(得分:2)

在Ubuntu上,安装了emacs-goodies-el包:

C-( M-x browse-kill-ring RET C-)

这定义了一个调用browse-kill-ring的临时键盘宏 当您按C-x e

现在你不必只是阅读有关杀戮戒指的内容,你可以真正看到其中的内容。

尝试使用C-w(剪切),M-w(复制),C-y(猛拉)和C-y M-y(在环中猛拉),然后按{{1}看到对杀戮戒指的影响。

答案 4 :(得分:1)

来自Emacs manual:“一个环是一个固定大小的数据结构,支持插入,删除,旋转和模索引用和遍历。”换句话说,它是circular queue