新加了一个叫 meow-grab 的功能,在 grab 分支。大致上是创建一个第二选区。
这个选区会被 meow 中使用 kill-ring 的命令看作是当前的 kill-ring,然后就可以做一些有意思的事
首先可以用来当一个位置的标记,之后回来,通过创建和取消。
可以用来做交换两个内容,通过 replace-save 。
可以用来从一个 buffer 向另一个 buffer 摘内容,通过 kill/save 。
也可以用来自动向 minibuffer 插入。
对 kill-ring 的影响只有 window 可见时,grab 才可用,所以很多时候可以不用取消,直接关了窗口就可以。
还有一点 Breaking Change:
同时去掉了一些针对 line 选择的 hack。现在如果需要删掉或复制一整行(带换行),需要用 bounds-of-thing line 的方式来选,粘贴的时候也不会自动的插入换行。
3 个赞
就是把一个区域,当做 kill-ring 的 car,然后原本操作kill-ring 的命令,就会变成操作那个区域。
实际上只有两个新命令,一个创建选区,一个取消。 其他的命令都是现有的,用途的话还要用用才能想到更多。
Weiss
4
记录位置和交换还挺实用的,其他用途确实还得再想想,不过感觉挺有开发空间的。
其实 emacs 里面有一整套的操作 kill-ring 的东西
mezi
8
拉取了最新的master。算是理解了grab的操作逻辑。赞
我感觉我搞懂了,就是从另一个地方复制,剪贴到当前位置,或和当前位置交换,或是简化 Minibuffer 输入的时候用。
1 个赞
mezi
10
meow-save 的fallback被覆盖了。我自己追加了下。
(defun meow-save ()
"Copy, like command `kill-ring-save'.
This command support `meow-selection-command-fallback'."
(interactive)
(if (region-active-p)
(meow--with-kill-ring
(let ((select-enable-clipboard nil))
(meow--prepare-region-for-kill)
(meow--execute-kbd-macro meow--kbd-kill-ring-save)))
(meow--selection-fallback)))
2 个赞