2016-10-02 9 views
1

helm-grep-do-git-grep接頭辞を付けてgrep whole repoを使用し、 をgrepのみ現在のディレクトリにします。現在のディレクトリでhelm-grep-do-git-grepを検索します

私はそれが

舵-のgrep-DO-のgit-grepの接頭辞なし引数はgrep全体のレポを逆にして唯一の現在のディレクトリ のgrepで欲しいです。

私はそれを逆にするか、キーボードショートカットを定義する関数を定義できますか?

答えて

1

これは接頭引数の意味を逆にしたいコマンド(一般的に、接頭辞argをブール値と解釈するコマンドの場合)の一般的な解決方法です。機能だけで、エンドユーザーである場合

(advice-add 'foo 
      :around 
      (lambda (orig &rest args) 
       "Reverse sense of prefix arg." 
       (let ((arg (car args))) 
       (if arg 
        (setq args (cons nil (cdr args))) 
        (setq args (cons '(4) (cdr args)))) 
       (apply orig args)))) 

:あなただけの関数(またはOKではないかもしれないが、以下を参照可能)を交換したい場合は

(defun foo (&optional arg) 
    "Do something. Do something else with prefix ARG." 
    (interactive "P") 
    (if arg 
     (message "something else") 
    (message "something"))) 

(defun anti-foo (&optional arg) 
    "Like `foo', but with opposite behavior w.r.t. ARG." 
    (interactive "P") 
    (if arg 
     (foo nil) 
    (foo '(4)))) 

、あなたはアドバイスを使用することができます(ヘルムソースをスキミングすると、helm-grep-do-git-grepはおそらく助言するのがよいでしょう)。その関数が他の関数で使用されている場合、アドバイス関数の定義を効果的に変更しているため、アドバイスによって、依存関数が誤動作する可能性があります。別に


:あなたがEmacsの接頭引数に慣れていない場合は、nilは、接頭辞なしのために使用されているが、'(4)は、単一の接頭語のために使用され、'(16)はように、二重の接頭辞を使用し、されています。

関連する問題