3

ほとんどの場合、次のように find-grep を実行します。

ack --no-heading --no-color "SOMETHING" ~/myco/firmwaresrc

SOMETHING が唯一の変数です。これを実現するには、実際には驚くほど多くのキーを押す必要があり、少し考えなければなりません。

Mx fgf が SOMETHING の代わりにそのコマンドと現在のリージョンを使用して find-grep を実行するように、これを「缶詰め」するにはどうすればよいでしょうか?

実際、私はこれを行う方法を考え出しました(以下の回答を参照)。リージョンが選択されていない場合、emacs に何かを要求させる方法を教えてもらえますか?

4

3 に答える 3

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")))
于 2012-02-10T11:57:41.877 に答える
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」を私に尋ねることができるかどうか疑問に思っています。質問を変えます。

于 2012-02-10T09:52:09.193 に答える