怎么配置实现不同快捷键对应Snails不同的后端搜索?

本人Emacs新手一枚,关注Emacs很久,一直没入坑。看过子龙山人Spacemacs Rocks的前面几个视频(后面的spacemacs太复杂了,表示看不懂)。会elisp最最基础的语法:(函数名 参数1 参数2 参数…)。看到了懒猫大神snails介绍,觉得很像我常用的sublime ctrl+p :joy:。花了两天时间各种搜索,拷了几十行配置。

但是想实现比如快捷键ctrl+shift+a,使用snials切换到rg后端进行搜索,不知道怎么实现??

.emacs.d/init.el配置代码:

;;拷贝自https://elpa.emacs-china.org/
;;alt+x,执行package-refresh-contents。刷新package信息列表
(setq package-archives '(("gnu"   . "http://elpa.emacs-china.org/gnu/")
                           ("melpa" . "http://elpa.emacs-china.org/melpa/")))

;;去滚动条
(scroll-bar-mode -1)
;;去工具栏
(tool-bar-mode -1)
;;去开始画面
(setq inhibit-splash-screen t)
;;去下面的状态栏
(setq-default mode-line-format nil)
;;改鼠标为光标
(setq-default cursor-type 'bar)
;;显示行号
(global-linum-mode 1)

;;遍历加载所有子目录
;;拷贝自https://github.com/manateelazycat/lazycat-emacs
;;~/.emacs.d/elisp目录包含了懒猫的三个项目:awesome-tab,awesome-tray,snails。
;;git clone https://github.com/manateelazycat/awesome-tab.git ~/.emacs.d/elisp
;;git clone https://github.com/manateelazycat/awesome-tray.git ~/.emacs.d/elisp
;;git clone https://github.com/manateelazycat/snails.git ~/.emacs.d/elisp
(defun add-subdirs-to-load-path (dir)
  "Recursive add directories to `load-path'."
  (let ((default-directory (file-name-as-directory dir)))
    (add-to-list 'load-path dir)
    (normal-top-level-add-subdirs-to-load-path)))
(add-subdirs-to-load-path "~/.emacs.d/elisp")

;;安装图标
(use-package all-the-icons
  :ensure t)

;;安装doom主题样式
(use-package doom-themes
  :ensure t
  :defer t
  :init
  (load-theme 'doom-one t)
  (require 'snails)
  (global-set-key (kbd "C-S-p") 'snails)
  (require 'awesome-tab)
  (awesome-tab-mode t)
  (require 'awesome-tray)
  (awesome-tray-mode 1))

多谢回复。我可能上面啰嗦一堆,没有真正说清问题点。其实是想问:1、怎么配置实现不同快捷键对应Snails不同的后端搜索?2、还有学习方向

可以参考这个

希望你大概能明白其中的原理。

多谢回复。具体点,比如我想绑定ctrl+shift+r快捷键, 只看snail-backend-rg的搜索,要怎么配置呢

我解释一下上面配置

上面这个配置的意思是:snails 搜索时使用 projectile/buffer 等五个 backend,绑定快捷键为 M-p(Alt-p)。

所以要实现你的需求「绑定ctrl+shift+r快捷键, 只看snail-backend-rg的搜索」,就只需要改动几个地方:

  1. 快捷键
  2. 修改 backend 列表

如果仍有疑问,欢迎回复 ~

(use-package snails
:load-path "~/.emacs.d/elisp/snails/"
:bind
(:map global-map
      ("C-S-r" . (lambda ()
                 (interactive)
                 (snails '(snails-backend-rg))))))

加了这么个配置,似乎不行

学习方向就是找一套大佬的配置,先用得爽再说。

如,

  1. purcell/emacsd
  2. spacemacs
  3. doom-emacs

1 个赞

前两天spacemacs装完之后,头都大了😓。门都找不到

配置是没问题的,我用你的配置在我本地测试,是可以的。

问题可能是你没有安装 rg 或者其他原因,可以自己去查一查…

感谢。rg是装了的,我再看看

你在eshell里看看能不能用rg,如果不能用,那可能是环境变量没写进去

可以参考我的M-EMACS

Screen Shot 2019-08-07 at 1.08.41 PM.png

spacemacs 新手入门学习顺序, http://spacemacs.org

非vim用户可以跳过2.5

1 个赞

感谢,拷贝你配置能用。就是少了你配置第一句中说的 exec-path-from-shell

好的,先试着看看。之前了解过,然后被文档给吓跑的😂

可以用就好。

exec-path-from-shell主要是为了应对懒猫放snails-core的这一行,不用Mac就完全不需要管。