如题,有一段时间没有用这个功能了,今天发现 ivy-occur 修改之后,修改成功但是退出后发现所有修改的 buffer 都没有保存,还需要一个一个手动保存?
C-s swiper
搜索
C-c C-o ivy-occur
C-x C-q ivy-wgrep-change-to-wgrep-mode
修改
C-x C-s
保存
谢谢回复!
我把最后一个忘记了,我按照 minibuffer 中的提示,用的 ,c
,看来是不行。
如果是spacemacs
(define-key ivy-minibuffer-map (kbd "C-c C-e") 'spacemacs//counsel-edit)
这个已经在spacemac–counsel-map里面定义了,但swiper没有生效,所以得再重新定义下
还真的不行。。
这个函数的doc string是"Edit the current search results in a buffer using wgrep.",感觉是搜索中minibuffer弹出来的时候用的,感觉还是楼上的C-x C-q
ivy-wgrep-change-to-wgrep-mode
更合适一点
helm 性能不佳,我也有点动摇了。但是 ivy 功能/默认配置欠缺,哪里有比较完善的配置可抄?
spacemacs的develop的completion layer吧,日常写代码用的基本都有。
spacemacs 怎么启用 ivy?没看到说明文档
dotspacemacs-configuration-layers
'(better-defaults
osx
git
;; version-control
markdown
html
javascript
php
auto-completion
ivy ;; <----
syntax-checking
mc-evil-compat
)
比较早的的配置(但 spacemacs 更新到 2017-12-03,并且看似启动正常),加了这行并没有什么变化,连 ivy 包都没有下载
这个不就是ivy-occur + wgrep么。。
我看了下我的,;; helm
和ivy
是在auto-completion
前面的,不知道这个顺序有没有关系。
另外要用develop branch,master的0.200.x我用过,有ivy但是少不少东西,不像develop,日常用的都有了。
从这篇文章了解这个功能的,发现 ivy + wgrep + evil 的配合真是完美
(use-package wgrep
:config
(setq wgrep-auto-save-buffer t
wgrep-enable-key "r"))
wgrep 这么配置后的工作流程:
- counsel-git-grep 搜要改的字符
- 之后 ivy-occur 打开
- 按
r
进入 wgrep 模式,使用%s/old/new/g
修改 - 最后
C-c C-c (wgrep-finish-edit)
保存修改
这个问题好早了哈哈,已经解决了,spacemacs里也是用的类似你说的这种方法