就是选中几个备选项,然后同时编辑的功能。刚刚转过来,不知道 ivy 有没有类似的功能?如果有的话能不能告诉我怎么用,看了一下 ivy 的文档说得不太具体。
似乎没有。我当初看比较两者的帖子里面看到过。
Update 被打脸了。 你要的 multi edit
我又多了一个继续用 IVY 的理由,谢谢!
试了一下批量修改当前 buffer 的内容:
-
M-x
swipper
- 过滤
- C-c C-o(ivy-occur) 进入一个只读窗口
-
C-x C-q(ivy-wgrep-change-to-wgrep-mode) 进入可编辑模式,这时
minibuffer
有一行快捷键提示:C-x C-s(save-buffer) 结束, 按 C-c C-k(wgrep-abord-change) 终止。 - 编辑
- C-c C-c(wgrep-finish-edit) 或 C-x C-s 结束,虽然更改生效了,但是临时编辑窗口没有关闭,还需要操作一次 C-o 0。
还是有很多地方有待改进:
- 过程略麻烦,有些步骤没必要,比如:只读 -> 可写,关闭临时编辑窗口
- 快捷键安排/函数使用上比较混乱,既有 C-x * 又有 C-c *,既有
avy-*
又有swiper
又有wgrep-*
还有系统内置函数 - 提示不明确,提示信息很快因其它操作而被覆盖,因为比较混乱,所以很容易忘记,我写这段回复就回头查看了多次
有点拼凑的感觉,不成体系。
我很少去扩展 helm,所以对它的复杂还没什么感觉,倒是 helm-swoop 偶尔崩溃,不知 ivy 是不是更稳定一些。考虑试用一段时间,把 find-file/switch-buffer 这些操作先替换掉,helm-swoop 暂时保留。
另外我刚才看了 @lujun9972 这篇 emacs-document/emacs-common/从Helm到Ivy.org at master · lujun9972/emacs-document · GitHub 文章,里边提到:
Helm 是不使用 minibuffer ,但是Ivy 是使用的。所以它可以被配置成总是在当前打开的窗口展示。对于那些大屏幕显示器 的用户而言,这个特性真的非常有用,因为你的目光不用在 minibuffer 来回切换:补全 结果总是显示在同一个窗口
对照文章后面给出的图片,没看太明白,我观察到的比较明显的区别,就是输入区的位置,确实眼睛移动的范围小了:
+--------------------+ +--------------------+
| | | |
| | | |
| | | |
| | | |
+--------------------+ +--------------------+
| > | | |
| ivy | | helm |
| | | : |
+--------------------+ +--------------------+
其实理想的应该是像补全菜单一样,直接在光标位置弹出。
这个区别在 spacemacs 中是不存在的,helm 的输入区也是在上面
目前已经是 ivy 的死忠,应该不会再换回去了。(一个小 tip:使用 ivy 并不妨碍 helm 的使用,helm 的命令还是可以用的,比如一些 ivy 没有的功能,大可以用 helm 来补充。)
Ivy 是不是Emacs.app/Spacemacs 才用得上的? 我控制台版的 Emacs 能用上的吗~? (不知道 Ivy 是什么东西,刚刚才发现 wgrep 很有用才看到这个概念。。。)