如何将 helm-do-grep-1 绑定到 emacs 中的一个键?
how to bind helm-do-grep-1 to a key in emacs?
我正在使用以下内容。
(global-set-key [f9] 'helm-do-grep-1)
但是当我按 f9 时,它抱怨类型参数错误。我只希望它像 "C-u C-c h g" 那样递归地进行 grep。但是打这么多键很无聊。
更新:
我需要递归地grep。 helm-do-grep 运行 在非递归模式下。
您可以使用
(global-set-key [f9]
(lambda ()
(interactive)
(let ((current-prefix-arg 't))
(call-interactively 'helm-do-grep))))
更新。如果您有兴趣:带有kbd序列的版本
(global-set-key [f9]
(lambda ()
(interactive)
(let ((minibuffer-message-timeout 0))
(execute-kbd-macro (read-kbd-macro "C-u C-c h g C-x Q"))))
见C-x Q的定义
正如错误消息已经指出的那样,函数 helm-do-grep-1
有一个参数:https://github.com/emacs-helm/helm/blob/master/helm-grep.el#L810
可能您想要的是将 f9
绑定到 helm-do-grep
,后者使用正确的参数调用 return 中的 helm-do-grep-1
(
https://github.com/emacs-helm/helm/blob/master/helm-grep.el#L1129)
(global-set-key [f9] 'helm-do-grep)
更新:
- 您可以在此处找到问题的多种解决方案:http://www.reddit.com/r/emacs/comments/2dxj69/how_do_make_helmdogrep_to_do_recursive_always/
- 要显示另一种可能性,您还可以执行以下操作:
(global-set-key [f5]
(lambda ()
(interactive)
(call-interactively (key-binding (kbd "C-c h g")))))
在这种情况下,您使用 <f5>
调用 helm-do-grep
并使用 C-u <f5>
的递归方法。但是,此方法将取决于您的键绑定。
我正在使用以下内容。
(global-set-key [f9] 'helm-do-grep-1)
但是当我按 f9 时,它抱怨类型参数错误。我只希望它像 "C-u C-c h g" 那样递归地进行 grep。但是打这么多键很无聊。
更新: 我需要递归地grep。 helm-do-grep 运行 在非递归模式下。
您可以使用
(global-set-key [f9]
(lambda ()
(interactive)
(let ((current-prefix-arg 't))
(call-interactively 'helm-do-grep))))
更新。如果您有兴趣:带有kbd序列的版本
(global-set-key [f9]
(lambda ()
(interactive)
(let ((minibuffer-message-timeout 0))
(execute-kbd-macro (read-kbd-macro "C-u C-c h g C-x Q"))))
见C-x Q的定义
正如错误消息已经指出的那样,函数 helm-do-grep-1
有一个参数:https://github.com/emacs-helm/helm/blob/master/helm-grep.el#L810
可能您想要的是将 f9
绑定到 helm-do-grep
,后者使用正确的参数调用 return 中的 helm-do-grep-1
(
https://github.com/emacs-helm/helm/blob/master/helm-grep.el#L1129)
(global-set-key [f9] 'helm-do-grep)
更新:
- 您可以在此处找到问题的多种解决方案:http://www.reddit.com/r/emacs/comments/2dxj69/how_do_make_helmdogrep_to_do_recursive_always/
- 要显示另一种可能性,您还可以执行以下操作:
(global-set-key [f5]
(lambda ()
(interactive)
(call-interactively (key-binding (kbd "C-c h g")))))
在这种情况下,您使用 <f5>
调用 helm-do-grep
并使用 C-u <f5>
的递归方法。但是,此方法将取决于您的键绑定。