summaryrefslogtreecommitdiffstats
path: root/lisp/init-grep.el
diff options
context:
space:
mode:
authorMartin Polden <martin.polden@gmail.com>2016-02-26 15:41:16 +0100
committerMartin Polden <martin.polden@gmail.com>2016-02-26 15:41:16 +0100
commitf8a0600ebafd4dd03db5f7b4e254e30cd0002d27 (patch)
treec19744060d109a0b4eb0c1e564309fafc7217e74 /lisp/init-grep.el
parentbc748ab9bb46b63628d5ac5d2a23436189f1a36f (diff)
Move grep config to separate file
Diffstat (limited to 'lisp/init-grep.el')
-rw-r--r--lisp/init-grep.el31
1 files changed, 31 insertions, 0 deletions
diff --git a/lisp/init-grep.el b/lisp/init-grep.el
new file mode 100644
index 0000000..84ea710
--- /dev/null
+++ b/lisp/init-grep.el
@@ -0,0 +1,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)