summaryrefslogtreecommitdiffstats
path: root/lisp/init-grep.el
blob: 84ea71073e3dddc0ff266268cff8f2ebce311f75 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(use-package grep
  :ensure nil ;; package is bundled with emacs

  :bind (:map grep-mode-map
         ;; make C-o and o behave as in dired
         ("o" . grep-visit-buffer-other-window)
         ("C-o" . grep-visit-buffer-other-window-noselect)
         ;; n and p changes line as in ag-mode
         ("n" . compilation-next-error)
         ("p" . compilation-previous-error))

  :config
  (defun grep-visit-buffer-other-window (&optional event noselect)
    "Visit grep result in another window."
    (interactive)
    (let ((current-window (selected-window)))
      (compile-goto-error event)
      (when noselect
        (select-window current-window))))

  (defun grep-visit-buffer-other-window-noselect (&optional event)
    "Visit grep result in another window, but don't select it."
    (interactive)
    (grep-visit-buffer-other-window event t))

  (add-hook 'grep-mode-hook
            (lambda ()
              ;; wrap lines
              (setq-local truncate-lines nil))))

(provide 'init-grep)