Emacs:如何在kill ring中向前移动(在向后移动后)?

10

我知道在使用(C-y)yank命令的后,可以通过(M-y)命令向后移动kill ring。但是有时候我会错过需要的yank,有没有办法在kill ring中向前移动呢?基本上,我想要的是M-y的反向操作。

如果这是一个重复的问题,请告诉我。我似乎在Stack Overflow或Google上找不到答案。


1
@Drew 写了一个名为 browse-kill-ring+.el 的库:http://www.emacswiki.org/emacs/browse-kill-ring%2b.el - lawlist
1
在MELPA中也有弹出式剪贴板。 - Ehvince
@lawlist: browse-kill-ring+browse-kill-ring 的扩展。前者需要后者。 - Drew
@Drew -- 啊……谢谢你——我还没有想到可能已经内置了一个底层库到Emacs中——Emacs确实是一次学习冒险。 - lawlist
1
@lawlist:不完全正确。browse-kill-ring+browse-kill-ring都不是Emacs的内置库,它们都是附加的库。前者是后者的扩展。我向browse-kill-ring的作者提供了这些扩展,但从未收到回复。因此,如果您想要这些扩展,您需要使用这两个库。 - Drew
3个回答

8

还有M--M-y,它是C-u-1M-y的简短等价物。


对于像我这样的新手Emacs用户,需要注意:如果你在向后循环kill ring时不小心按下了太多次M-y,你可以按下M--``M-y,而无需将手指离开M键即可向前循环一次。 - Kohányi Róbert

5
您可以使用yank-pop前缀参数。从C-hfyank-popRET的文档中得知:

如果没有参数,则插入上一个删除。 如果有参数N,则插入第N个先前的删除。 如果N为负,则这是一个更近期的删除。

所以例如,在粘贴后向“前”移动一项,您可以执行C-u-1M-y。您也可以像@seanmcl建议的那样简单地使用undo
很容易难以跟踪删除环中的条目。因此,我建议使用像browse-kill-ring这样的扩展程序,它显示删除环并允许您选择要粘贴的文本。

5

当您移动到文本后面时,您可以简单地执行“撤消”操作。重复执行“撤消”操作将不断向前移动。尽管如此,我同意@Iqbai的观点,对于长时间的yanks,使用browse-kill-ring更为合适。


在移动了 kill ring 指针之后,执行 C-y 将会粘贴最后指向的项目,你只能通过前缀参数向前移动。undo 只在一个“yank 会话”中有效。 - Rptx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接