与 Windows 风格的自我解释复制/剪切/粘贴命令不同,我无法理解emacs 中的环概念。
由于我不经常在 emacs 中编程,我可能没有意识到环功能的价值。你能告诉我emacs中什么叫ring以及如何使用它吗?
与 Windows 风格的自我解释复制/剪切/粘贴命令不同,我无法理解emacs 中的环概念。
由于我不经常在 emacs 中编程,我可能没有意识到环功能的价值。你能告诉我emacs中什么叫ring以及如何使用它吗?
好吧,让我用简单的话来试试。每次复制 ( M-w) 或剪切 ( C-w) 时,所选内容都会插入到所谓的环的顶部(就像一个封闭式列表)。
有趣的部分随之而来。现在,如果您粘贴,C-y则最近粘贴的区域(现在是环的前元素)将插入缓冲区。如果继续按M-y,则文本将依次被环中较旧的元素替换,也就是说,环会旋转,并且每次都将较旧的文本指定为最前面的元素。这使您可以访问较旧的剪切/复制文本。
有用的部分并没有到此结束。如果您剪切/复制一些其他文本,它将被插入到圆环的顶部,并且圆环将再次旋转,使得top现在是front。您可以重新开始C-y M-y序列,将新插入的文本指定为front。
所以,总结一下:
您可以通过想象前面固定在 12 小时位置的圆圈来形象化它,但不是环的一部分。相反,顶部是环的一部分,因此当某些命令旋转环时,顶部也会旋转。
每次您将某些内容复制或剪切到 Windows 中的剪贴板时,您都会丢失之前剪贴板上的所有内容。(尽管有些程序会为您存储以前的剪贴板内容)即使在您复制/拉动/剪切/杀死东西之后,emacs“环”也会存储旧的剪贴板内容。如果您习惯了它会很方便,因为它可以让您一次在剪贴板中存储多个内容,并减少意外覆盖您剪切到剪贴板的内容的机会,就像在 Windows 中一样。
环是一个循环缓冲区。想想一个通讯录。
如果您正在杀戮/猛拉戒指,那么您可以在您的历史中前进和后退。
在 Ubuntu 上,emacs-goodies-el
安装软件包:
按C-(
M-x browse-kill-ring
RET
C-)
这定义了一个临时键盘宏,browse-kill-ring
当您按下时调用C-x e
。
现在您不必只阅读杀戮戒指,您实际上可以看到里面有什么。
尝试使用C-w
(cut)、M-w
(copy)、C-y
(yank) 和C-y M-y
(yank next in ring),然后按C-x e
查看对 kill ring 的效果。