I'd like to create two keybindings for helm-do-ag-project-root or helm-project-ag

where one would have (setq helm-ag-insert-at-point nil) and one would have (setq helm-ag-insert-at-point 'symbol)

So that I can selectively use word at-point for search.

Below is my attempt but not working.

 (use-package helm-projectile
   :ensure t

    (defun my-helm-grep-do-git-grep ()
      (setq helm-ag-insert-at-point nil)
    (global-set-key (kbd "C-c g") 'my-helm-grep-do-git-grep)

    (defun my-helm-grep-do-git-grep-at-point ()
      (setq helm-ag-insert-at-point 'symbol)
    (global-set-key (kbd "C-c k") 'my-helm-grep-do-git-grep-at-point)

  • See this for an alternative solution which always inserts the symbol, but lets you overtype it if you don't want it: emacs.stackexchange.com/a/53219/2498
    – Tom
    Commented Jan 15, 2020 at 16:04

3 Answers 3


This worked fine for me when I was using helm-ag:

(defun mu-helm-ag-thing-at-point ()
  "Search the symbol at point with `helm-ag'."
  (let ((helm-ag-insert-at-point 'symbol))

You should make your functions interactive (see here).

You could also try the helm-grep-do-git-grep command, which I think is a lot smarter at solving this issue. For example, it always searches the symbol at point if it finds one, but as soon as you start typing the Helm buffer updates automatically to display the new candidates.


In Helm, M-n can be used to select thing at point. In most cases.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.