gpt4 book ai didi

emacs - 我怎样才能改进这个 Emacs lisp 功能?

转载 作者:行者123 更新时间:2023-12-01 11:48:16 25 4
gpt4 key购买 nike

目的是使用 git grep 作为 M-x grep 的命令,以及随之而来的所有缓冲区优势。所需功能:

  • 它读取点处的单词/事物作为默认值(完成,有点)
  • 如果设置了区域,它将读取当前区域作为默认参数。

以下是我目前的代码:

(defun bw-read-string-at-point ()
(interactive)
(let ((word (word-at-point)))
(set-text-properties 0 (length word) nil word)
word))

(defun bw-git-grep (search-str)
"Uses `git-grep` to find `search-str`"
(interactive
(list
(read-string (format "Search for (%s): " (bw-read-string-at-point)))))
(let ((search-str (if (= (length search-str) 0)
(bw-read-string-at-point) search-str)))
(grep (concat "git --no-pager grep -i -I -nH --no-color --extended-regexp " search-str))))

我觉得 interactive 有点笨拙,可以做得更好。

最佳答案

实际上,它看起来还不错。除了你应该使用 default' argument of读取字符串,以及 interactivebw-read-string-at-point不应该在那里。或者更好的是,只需使用 grep-tag-default .以下是我如何调整它:

(defun bw-git-grep (search-str)
"Uses `git-grep` to find `search-str`"
(interactive
(let ((default (grep-tag-default)))
(list
(read-string (format "Search for (default %s): " default)
nil nil default))))
(grep (concat "git --no-pager grep -i -I -nH --no-color --extended-regexp " search-str)))

关于emacs - 我怎样才能改进这个 Emacs lisp 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13923283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com