如何在 emacs 中 grep 光标下的当前单词?
How to grep current word under cursor in emacs?
我正在尝试在 emacs 中 grep 光标下的当前单词。我在下面编写了代码,它引发了错误:参数数量错误...当我从 xx() 中删除 (grep) 并将其绑定到 f4 键(最后一行注释)时,在 f3 和 f4 grep 搜索光标下的单词之后。有谁知道为什么不能从 xx() 调用 (grep)?
谢谢,亚历克斯。
(require 'grep)
(defun xx ()
"setting up grep-command using current word under cursor as a search string"
(interactive)
(setq curWord (thing-at-point 'word))
(setq VALUE (concat "grep -nH -r --exclude='TAGS' --include='*.h' --include='*.cpp' --include='*.pl' --include='*.c' -e " curWord " /home/alex/code/") )
(grep-apply-setting 'grep-command VALUE)
(grep))
(global-set-key (kbd "<f3>") 'xx)
;(global-set-key (kbd "<f4>") 'grep )
grep
函数接受一个参数,因此更改您的函数以传递它:
(defun xx ()
"setting up grep-command using current word under cursor as a search string"
(interactive)
(let* ((cur-word (thing-at-point 'word))
(cmd (concat "grep -nH -r --exclude='TAGS' --include='*.h' --include='*.cpp' --include='*.pl' --include='*.c' -e " cur-word " /home/alex/code")))
(grep-apply-setting 'grep-command cmd)
(grep cmd)))
您不需要更改 grep
命令或定义您自己的替换。你只需要获取它提供的默认值,这已经是那个词了。
在你使用M-x grep
之后,你应该可以使用M-n
来检索点的单词。 (但要小心放回开关。显然当你点击 M-n
时,香草 Emacs 会移除它们。)
M-n
在提示时将命令的默认值插入到迷你缓冲区中。如果有多个默认值,则在它们之间重复 M-n
循环。这在一般情况下是正确的,不仅仅是命令 grep
.
如果您使用库 Grep+,则默认值会自动插入到迷你缓冲区中(无需更改命令开关)。而且您可以更好地控制您想要的默认值和其他默认行为。
我正在尝试在 emacs 中 grep 光标下的当前单词。我在下面编写了代码,它引发了错误:参数数量错误...当我从 xx() 中删除 (grep) 并将其绑定到 f4 键(最后一行注释)时,在 f3 和 f4 grep 搜索光标下的单词之后。有谁知道为什么不能从 xx() 调用 (grep)? 谢谢,亚历克斯。
(require 'grep)
(defun xx ()
"setting up grep-command using current word under cursor as a search string"
(interactive)
(setq curWord (thing-at-point 'word))
(setq VALUE (concat "grep -nH -r --exclude='TAGS' --include='*.h' --include='*.cpp' --include='*.pl' --include='*.c' -e " curWord " /home/alex/code/") )
(grep-apply-setting 'grep-command VALUE)
(grep))
(global-set-key (kbd "<f3>") 'xx)
;(global-set-key (kbd "<f4>") 'grep )
grep
函数接受一个参数,因此更改您的函数以传递它:
(defun xx ()
"setting up grep-command using current word under cursor as a search string"
(interactive)
(let* ((cur-word (thing-at-point 'word))
(cmd (concat "grep -nH -r --exclude='TAGS' --include='*.h' --include='*.cpp' --include='*.pl' --include='*.c' -e " cur-word " /home/alex/code")))
(grep-apply-setting 'grep-command cmd)
(grep cmd)))
您不需要更改 grep
命令或定义您自己的替换。你只需要获取它提供的默认值,这已经是那个词了。
在你使用
M-x grep
之后,你应该可以使用M-n
来检索点的单词。 (但要小心放回开关。显然当你点击M-n
时,香草 Emacs 会移除它们。)M-n
在提示时将命令的默认值插入到迷你缓冲区中。如果有多个默认值,则在它们之间重复M-n
循环。这在一般情况下是正确的,不仅仅是命令grep
.如果您使用库 Grep+,则默认值会自动插入到迷你缓冲区中(无需更改命令开关)。而且您可以更好地控制您想要的默认值和其他默认行为。