我经常发现自己在做了一些杀戮之后反复做一些东西,它变成了一个过程:
每当我杀死一些文本时,它会在kill ring中推回第一个kill,这样我就需要遍历所有的杀戮以返回我想要的文本.我想要做的是反复猛拉同一文本,同时杀死文本之间的冲突.这可能吗?
Jua*_*cho 19
这是一个奇怪的黑客,但可能有所帮助.
您第一次使用M-y时通常会出现错误(之前没有猛拉).所以这个想法是第一次你得到最后一次猛击而不是最后一次击杀.
为了存储最后一次猛拉,我在这个例子中使用'Y'寄存器.
这两个函数将包围yank和yank-pop.你期待错误,我期待建议.
(defun jp/yank (&optional arg)
"Yank and save text to register Y"
(interactive)
(set-register ?Y (current-kill 0 t))
(yank arg))
(defun jp/yank-pop (&optional arg)
"If yank-pop fails, then insert register Y"
(interactive)
(condition-case nil
(yank-pop arg)
(error (insert (get-register ?Y)))))
(global-set-key (kbd "M-y") (quote jp/yank-pop))
(global-set-key (kbd "C-y") (quote jp/yank))
Run Code Online (Sandbox Code Playgroud)
你可以使用它M-x delete-region来杀死文本,如果你想大量使用它,可能会将它绑定到一个键.