Spacemcs evil-mc 多点编辑,(evil-mc-undo-all-cursors) 不能工作

自己在使用插件Evil-mc,当自己编辑完成以后,不能去掉这些cursor,在很多地方还是高亮。自己使用命令(evil-mc-undo-all-cursors)好像还是不能正常工作,没有任何反应。不知道大家有使用这个插件的吗?大家在Spacemacs下进行多点编辑都是使用什么插件呢?有没有更好的插件来进行文本的多点的编辑?

我的可以undo,可以多点编辑,但是不能多点删减

既然你已经知道 evil-mc-undo-all-cursor 不工作,为何不进一步调试它呢。多点高亮,本质上就是创建多个 overlay,在编辑期间,这些 overlay 必定存放在某个全局的变量中,把它们删除就实现 undo 了。

多点编辑在我看来就是个噱头,华而不实。我不记得上一次使用多点编辑是什么时侯了,有太多更方便&可靠的替代方案:

你下面说的 narrowing 和 widen ,以及 vim style 替换这个我也是经常使用这个。这个对我使用频率还是比较高的。或许这个是比较好的解决方案。我原来也尝试过使用这个evil-mc,后来也是使用体验不好暂时放弃了,现在又重新看看这个插件,是不是可以更好的使用。感觉这个插件在使用过程中感觉并没有效率很高,反倒是很麻烦,琐碎了。

再试试evil-multiedit

这个打字太多了,特别是foo换成fo这种的,用multi edit只要match-next几下然后删掉一个o就行了,:s要把两个单词都打一遍

复制粘贴也就多按两次键,s/foo/bar/g 的好处是可以预览,而且操作过程可以重复利用(或修改后再利用)。它的缺点不是输入的问题,而是修改范围的问题。只能限定修改的起始区间,不能跳过中间的某些匹配项。这种情况 evil-ex-search 是很好的解决方案。

多点编辑的问题在于,编辑点很难维持,必须一气呵成选对所有的编辑点,一步出错,全盘重来。而且你下次修改相同/相似的内容,还要再打一套完整的降龙十八掌。

evil-ex-search 则不同,可以重用历史操作。编辑过程中有足够的时间思考是否跳过、观察每一步是否正确,编辑错了可以单步撤销,即使按 C-g 中断了也可以立即唤起继续操作。

You don’t need more than one cursor in vim,对 evil 也适用。

加个c flag后,vim就可以选择是否跳过中间的匹配项了 s/foo/bar/gc

trigger Effect
y Substitute this match
n Skip this match
q Quit substituting
l “last”—Substitute this match, then quit
a “all”—Substitute this and any remaining matches
C-e Scroll the screen up
C-y Scroll the screen down
1 个赞

其他不清楚,evil-multiedit是可以跳到各个match上然后toggle一个的。

(evil-ex-define-cmd "ie[dit]" 'evil-multiedit-ex-match)可解

这个我猜现在multiple-cursors evil-mc evil-multiedit都支持

1 个赞