各位大佬,小弟初入spacemacs, 请问如何增强swiper,能够自动搜索光标所处下的字符串,而不用手动输入?因为这个功能我十分需要, 小弟不熟elisp语言,不知道该如何写一个函数,请各位大佬赐教,谢谢
(defun nasy/swiper-at-point (sym)
"Use `swiper' to search for the `sym' at point."
(interactive (list (thing-at-point 'symbol)))
(swiper sym))
然后重新 bind 一下 key 就好(当然最后的 swiper 乃也可以用 swiper-isearch
1 个赞
谢谢大佬,我周一试试,非常感谢
感谢,这个功能用起来太爽了!
swiper有点慢
C-s 然后 M-n,并不是太麻烦
1 个赞
首先要谢谢大佬,这个代码我使用了一下,确实能实现我描述的功能,我这里绑定了C+s, 目前使用这段代码的效果是:按住绑定键,自动抓取了光标下的symbol,并显示了结果。但是这样的话,我想要搜索其他非光标下的symbol,就需要删除swiper后的参数,或者将光标移动到空格的地方才行。
首先我再次抱歉,我标题描述的不够准确,我是想要这样的效果: 按住绑定键,自动抓取光标下的symbol作为swiper的默认的symbol,只有当我再次按下RET,才会执行搜索,如果我不进行默认symbol的搜索的话,我可以继续输入其他的symbol。
谢谢大佬了,看看有无相关的elisp代码。或者说这种功能其实并不需要,可能是我使用spacemacs时间太短了。
是有一点,但是我只是用它来搜索本文件的相关内容
乃这个需要的是
你需要的这个功能其实很简单:
(defun f ()
(interactive)
(let* ((symbol-at-points (thing-at-point 'symbol))
(read-symbol (read-from-minibuffer (concat "Swiper [" symbol-at-points
"] : "))))
(if (equal read-symbol "")
(swiper symbol-at-points)
(swiper read-symbol))))
这里挂了一个virtual placeholder的issue,但是后来没管。
我曾经想过用yas来模拟,但不知从哪个commit起yas-minor-mode
就不能在minibuffer里面启动了
另外,ivy现在钦定用M-n来抓取当前位置的symbol了
1 个赞
是的哦,十分感谢大佬
谢谢大佬,我现在才反应过来,十分感谢
恩恩,谢谢您,我知道该如何操作了
十分感谢大佬