| @@ -2051,96 +2051,160 @@ ARG is ignored." | |||
| "") | |||
| "memo.txt")))) | |||
| (defvar my-rgrep-gitgrep | |||
| "git --no-pager -c color.grep=false grep -nH -e " | |||
| "Grep command for git grep.") | |||
| (defvar my-rgrep-ag | |||
| "ag --nocolor --nogroup --nopager " | |||
| "Grep command for ag") | |||
| (defvar my-rgrep-ack | |||
| "ack --nocolor --nogroup --nopager " | |||
| "Grep command for ack") | |||
| (defvar my-rgrep-global | |||
| "global --result grep " | |||
| "Grep command for global") | |||
| (defvar my-rgrep-grep | |||
| (concat "find . " | |||
| "-path '*/.git' -prune -o " | |||
| "-path '*/.svn' -prune -o " | |||
| "-type f -print0 | " | |||
| "xargs -0 -e grep -nH -e ") | |||
| "Grep command for grep") | |||
| (defun my-rgrep-grep-command () | |||
| "Return recursive grep command for current directory." | |||
| (if (and (require 'gtags nil t) | |||
| (gtags-get-rootpath)) | |||
| my-rgrep-global | |||
| (if (eq 0 | |||
| (shell-command "git rev-parse --git-dir")) | |||
| my-rgrep-gitgrep | |||
| (if (executable-find "ag") | |||
| my-rgrep-ag | |||
| (if (executable-find "ack") | |||
| my-rgrep-ack | |||
| my-rgrep-grep))))) | |||
| ;; (defvar my-rgrep-gitgrep | |||
| ;; "git --no-pager -c color.grep=false grep -nH -e " | |||
| ;; "Grep command for git grep.") | |||
| ;; (defvar my-rgrep-ag | |||
| ;; "ag --nocolor --nogroup --nopager " | |||
| ;; "Grep command for ag") | |||
| ;; (defvar my-rgrep-ack | |||
| ;; "ack --nocolor --nogroup --nopager " | |||
| ;; "Grep command for ack") | |||
| ;; (defvar my-rgrep-global | |||
| ;; "global --result grep " | |||
| ;; "Grep command for global") | |||
| ;; (defvar my-rgrep-grep | |||
| ;; (concat "find . " | |||
| ;; "-path '*/.git' -prune -o " | |||
| ;; "-path '*/.svn' -prune -o " | |||
| ;; "-type f -print0 | " | |||
| ;; "xargs -0 -e grep -nH -e ") | |||
| ;; "Grep command for grep") | |||
| (defvar my-rgrep-alist | |||
| `( | |||
| ;; gnu global | |||
| ("global" | |||
| (and (require 'gtags nil t) | |||
| (gtags-get-rootpath)) | |||
| "global --result grep ") | |||
| ;; git grep | |||
| ("gitgrep" | |||
| (eq 0 | |||
| (shell-command "git rev-parse --git-dir")) | |||
| "git --no-pager -c color.grep=false grep -nH -e ") | |||
| ;; the silver searcher | |||
| ("ag" | |||
| (executable-find "ag") | |||
| "ag --nocolor --nogroup --nopager ") | |||
| ;; ack | |||
| ("ack" | |||
| (executable-find "ack") | |||
| "ack --nocolor --nogroup --nopager ") | |||
| ;; grep | |||
| ("grep" | |||
| t | |||
| ,(concat "find . " | |||
| "-path '*/.git' -prune -o " | |||
| "-path '*/.svn' -prune -o " | |||
| "-type f -print0 | " | |||
| "xargs -0 grep -nH -e ")) | |||
| ) | |||
| "Alist of rgrep command. | |||
| Each element is in the form like (NAME SEXP COMMAND), where SEXP returns the | |||
| condition to choose COMMAND when evaluated.") | |||
| (defvar my-rgrep-default nil | |||
| "Default command name for my-rgrep.") | |||
| (defun my-rgrep-grep-command (&optional name alist) | |||
| "Return recursive grep command for current directory or nil. | |||
| If NAME is given, use that without testing. | |||
| Commands are searched from ALIST." | |||
| (if alist | |||
| (if name | |||
| ;; if name is given search that from alist and return the command | |||
| (nth 2 (assoc name | |||
| alist)) | |||
| ;; if name is not given try test in 1th elem | |||
| (let ((car (car alist)) | |||
| (cdr (cdr alist))) | |||
| (if (eval (nth 1 car)) | |||
| ;; if the condition is true return the command | |||
| (nth 2 car) | |||
| ;; try next one | |||
| (and cdr | |||
| (my-rgrep-grep-command name cdr))))) | |||
| ;; if alist is not given set default value | |||
| (my-rgrep-grep-command name my-rgrep-alist))) | |||
| (my-rgrep-grep-command "ag" nil) | |||
| (defun my-rgrep (command-args) | |||
| "My recursive grep." | |||
| (interactive (list (read-shell-command "grep command: " | |||
| (my-rgrep-grep-command) | |||
| 'grep-find-history))) | |||
| "My recursive grep. Run COMMAND-ARGS." | |||
| (interactive (let ((cmd (my-rgrep-grep-command my-rgrep-default | |||
| nil))) | |||
| (if cmd | |||
| (list (read-shell-command "grep command: " | |||
| cmd | |||
| 'grep-find-history)) | |||
| (error "my-rgrep: Command for rgrep not found") | |||
| ))) | |||
| (compilation-start command-args | |||
| 'grep-mode)) | |||
| (defun my-rgrep-symbol-at-point (command-args) | |||
| "My recursive grep." | |||
| (interactive (list (read-shell-command "grep command: " | |||
| (concat (my-rgrep-grep-command) | |||
| " " | |||
| (thing-at-point 'symbol)) | |||
| 'grep-find-history))) | |||
| (compilation-start command-args | |||
| 'grep-mode)) | |||
| ;; (defun my-rgrep-symbol-at-point (command-args) | |||
| ;; "My recursive grep. Run COMMAND-ARGS." | |||
| ;; (interactive (list (read-shell-command "grep command: " | |||
| ;; (concat (my-rgrep-grep-command) | |||
| ;; " " | |||
| ;; (thing-at-point 'symbol)) | |||
| ;; 'grep-find-history))) | |||
| ;; (compilation-start command-args | |||
| ;; 'grep-mode)) | |||
| (defun my-rgrep-ack () | |||
| "My recursive grep by ack." | |||
| (interactive) | |||
| (let ((my-rgrep-default "ack")) | |||
| (if (called-interactively-p 'any) | |||
| (call-interactively 'my-rgrep) | |||
| (error "Not intended to be called noninteractively. Use `my-rgrep'")))) | |||
| (defun my-rgrep-ag () | |||
| "My recursive grep by ack." | |||
| (interactive) | |||
| (let ((my-rgrep-default "ag")) | |||
| (if (called-interactively-p 'any) | |||
| (call-interactively 'my-rgrep) | |||
| (error "Not intended to be called noninteractively. Use `my-rgrep'")))) | |||
| (defun my-rgrep-gitgrep () | |||
| "My recursive grep by ack." | |||
| (interactive) | |||
| (let ((my-rgrep-default "gitgrep")) | |||
| (if (called-interactively-p 'any) | |||
| (call-interactively 'my-rgrep) | |||
| (error "Not intended to be called noninteractively. Use `my-rgrep'")))) | |||
| (defun my-rgrep-grep () | |||
| "My recursive grep by ack." | |||
| (interactive) | |||
| (let ((my-rgrep-default "grep")) | |||
| (if (called-interactively-p 'any) | |||
| (call-interactively 'my-rgrep) | |||
| (error "Not intended to be called noninteractively. Use `my-rgrep'")))) | |||
| (defun my-rgrep-global () | |||
| "My recursive grep by ack." | |||
| (interactive) | |||
| (let ((my-rgrep-default "global")) | |||
| (if (called-interactively-p 'any) | |||
| (call-interactively 'my-rgrep) | |||
| (error "Not intended to be called noninteractively. Use `my-rgrep'")))) | |||
| (defun my-rgrep-ack (command-args) | |||
| "My recursive grep." | |||
| (interactive (list (read-shell-command "grep command: " | |||
| my-rgrep-ack | |||
| 'grep-find-history))) | |||
| (my-rgrep command-args)) | |||
| (defun my-rgrep-ag (command-args) | |||
| "My recursive grep." | |||
| (interactive (list (read-shell-command "grep command: " | |||
| my-rgrep-ag | |||
| 'grep-find-history))) | |||
| (my-rgrep command-args)) | |||
| (defun my-rgrep-gitgrep (command-args) | |||
| "My recursive grep." | |||
| (interactive (list (read-shell-command "grep command: " | |||
| my-rgrep-gitgrep | |||
| 'grep-find-history))) | |||
| (my-rgrep command-args)) | |||
| (defun my-rgrep-global (command-args) | |||
| "My recursive grep by gnu global." | |||
| (interactive (list (read-shell-command "grep command: " | |||
| my-rgrep-global | |||
| 'grep-find-history))) | |||
| (my-rgrep command-args)) | |||
| (defun my-rgrep-grep (command-args) | |||
| "My recursive grep." | |||
| (interactive (list (read-shell-command "grep command: " | |||
| my-rgrep-grep | |||
| 'grep-find-history))) | |||
| (my-rgrep command-args)) | |||
| (define-key ctl-x-map "s" 'my-rgrep) | |||