可以试试懒猫的 color-rg
好的谢谢,我是在doom emacs用。换成color-rg要改好几处。不知这个有没有搜索其他目录的命令。readme里没看到。
我也同样的问题,mark一个 现在都不敢在emacs里rg,而是跳到外面开个shell来rg了
试下了,除了不能搜中文(中文换color-rg等),我的counsel-rg没有卡死的问题,emacs -q后再执行counsel-rg退格时也不会卡,也许是doom emacs的问题
用了以下最小配置(放在.emacs中),还是出现卡死的情况。如图:
(toggle-debug-on-error)
(setq default-directory "f:/emacs/")
(setq package-user-dir (format "%s/elpa--test-smartparens/%s" user-emacs-directory emacs-version))
(setq package-archives
'(("gnu" . "https://elpa.gnu.org/packages/")
("melpa" . "https://melpa.org/packages/")))
(package-initialize)
(defun require-packages (&rest packages)
(dolist (pkg packages)
(unless (package-installed-p pkg)
(package-refresh-contents)
(package-install pkg))
(require pkg)))
(require-packages
'counsel
)
(require 'package)
(defun list-installed-package ()
(mapcar
#'car
(mapcar
(lambda (p) (cons (package-desc-full-name p) p))
(delq nil
(mapcar (lambda (p) (unless (package-built-in-p p) p))
(apply #'append (mapcar #'cdr package-alist)))))))
;; ------------------------------------------------------------------
(add-hook 'after-init-hook
'(lambda ()
(switch-to-buffer "*.c")
(insert "// -*- mode: c -*-\n")
(insert (format "// Installed packages: %s\n" (list-installed-package)))
(insert "// Press ' below:\n")
(c-mode)
))
(run-hooks 'after-init-hook)
最小配置参照 以下:
这个最小配置也做了好多事了,我最小配置是emacs -q之后c-x c-e(package-initialize)
就这一句,然后在m-x调用某个命令看有没有问题
这个配置我看了下就是下载包,然后加载,列出加载的包到buffer中。给作者报了个issue,不会上传图片,图片引用了本站的。不知道能不能访问进来。
这样的话,怎么加载包呢?
用了以下配置,还是卡死了。emacs-26.2-x86_64测试了也会卡死。emacs -Q后:
(add-to-list 'load-path "F:/emacs/.emacs.d/elpa--test-smartparens/27.0.60/ivy-20200424.1054/")
(add-to-list 'load-path "F:/emacs/.emacs.d/elpa--test-smartparens/27.0.60/swiper-20200319.1334/")
(add-to-list 'load-path "F:/emacs/.emacs.d/elpa--test-smartparens/27.0.60/counsel-20200422.1208/")
(package-initialize)
(require 'ivy)
(require 'swiper)
(require 'counsel)
安装包的方法不一样吧,用elpa的方法安装的包在(package-initialize)
之后就有counsel-rg等命令不用在require了(要在原elpa安装包的目录下),elpa安装的包在~/.emacs.d/elpa/ 目录
你是不是改了HOME路径,emacs在win的HOME路径C:\Users\用户名\AppData\Roaming\,我原来用(setenv "HOME" "d:/123/")
改过,后来出问题就没改了,还是用默认的HOME路径
HOME路径写在注册表里。
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GNU\Emacs] “HOME”=“f:\emacs”
现在直接没用 (package-initialize), 还是卡死。
(add-to-list 'load-path "F:/emacs/.emacs.d/elpa--test-smartparens/27.0.60/ivy-20200424.1054/")
(add-to-list 'load-path "F:/emacs/.emacs.d/elpa--test-smartparens/27.0.60/swiper-20200319.1334/")
(add-to-list 'load-path "F:/emacs/.emacs.d/elpa--test-smartparens/27.0.60/counsel-20200422.1208/")
(require 'ivy)
(require 'swiper)
(require 'counsel)
(getenv "HOME")
"f:\\emacs"
我把注册表的HOME删除了,还是有卡: (getenv “HOME”) “C:\Users\hh\AppData\Roaming” 在spacemacs时我用helm-ag,命令用的rg。没出现卡死问题。应该就是counsel-rg在windows下问题了。
奇怪为什么CTRL-g不能结束命令呢?
可以用 counsel-etags-grep
, 来自于counsel-etags
,如果有rg就用rg,没有就用grep、
当时我给 counsel/ivy 提了两个方案,第一个方案没被采纳,虽然我认为是上策。此方案用在我自己的插件counsel-etags
里了。
第二个方案见 use timer to improve the ivy-read performance · Issue #1218 · abo-abo/swiper · GitHub , ivy-dynamic-exhibit-delay-ms
解决了这个问题。但是我认为是中策
谢谢。请问把emacs搞得C-g也不起作用会是什么原因?
第二种方案的确不好。所有ivy查询命令均受影响,上下移动的C-n,C-p都慢了,不只是需要async等外部进程的慢了。
aboabo说他不用windows。大神能不能教两招怎么调试这种直接卡死emacs的方法?我看他那个函数是异步调用的。在哪卡住也无法定位。windows真是坑,但只能用它。
windows图形界面emacs卡死我也常遇到,C-g或去任务管理器看emacs下的子进程把它结束,还不行就只能重启了,如果在终端下用emacs会不会更好些,卡死的情况更少,好多大神都用的终端,我没在终端下用主要是因为输入法的问题
只有降低启动process的频率。如果有更完美的方案我也不写counsel-etags-grep了。反正grep,代码导航,代码自动完成,文件查找,我都是使用自己的插件。也针对Window优化了。在任何平台上速度都是秒杀其他编辑器和IDE。
所以最好方案就是和我使用同样的插件,抄我的配置,我已对Windows进行优化了,
- counsel-etags , grep 代码导航
- find-file-in-project , 找文件
- company-ctags , 代码自动完成
- wucuo , flyspell加强
我对插件的态度就是把它们当作api的集合。ivy/counsel对我来说无非就是提供了ivy-read
和occur
等API而已。
好的,谢谢你。单纯的grep用起来不是太方便。我的需求是用counsel可以实时根据查询条件,更新查询结果。不知道你的配置有没有把ounsel-etags-grep和更新查询结果结合?我去学习下。