几乎总是,我想像这样运行find-grep:
ack --no-heading --no-color" SOMETHING" 〜/ MYCO / firmwaresrc
其中SOMETHING是唯一的变量。实际上有很多令人惊讶的按键和思维要求才能实现这一点。
我如何去做'罐头'这样,M-x fgf会用该命令运行find-grep而当前区域代替SOMETHING?
实际上我已经研究过如何做到这一点(见下面的答案)。任何人都可以告诉我如果没有选定的地区,如何让emacs要求SOMETHING?
答案 0 :(得分:7)
(defun fgf (term)
(interactive
(list (if (use-region-p)
(buffer-substring (region-beginning) (region-end))
(read-string "grep-find: "))))
(grep-find (concat "ack --no-heading --no-color \""
term "\" ~/myco/firmwaresrc")))
答案 1 :(得分:1)
您可能还想查看ack,full-ack或ack-and-a-half。最后一个应该是前两个的结合。它们允许您指定默认参数等(尽管学习elisp没有任何问题: - )。
答案 2 :(得分:0)
这有效:
(defun fgf ()
(interactive)
(if (region-active-p)
(let (start end term command)
(setq start (region-beginning)
end (region-end)
term (buffer-substring start end)
command (concat "ack --no-heading --no-color \"" term "\" ~/myco/firmwaresrc"))
(grep-find command))))
所以现在我想知道如果没有选择区域,是否有可能让它问我“SOMETHING”。我会改变这个问题。