Skip to content

Instantly share code, notes, and snippets.

@tam17aki
Created September 1, 2013 00:34
Show Gist options
  • Save tam17aki/6401556 to your computer and use it in GitHub Desktop.
Save tam17aki/6401556 to your computer and use it in GitHub Desktop.
(lazyload (highlight-symbol-all
highlight-symbol-moccur
highlight-symbol-occur-by-moccur) "highlight-symbol" nil
(defun highlight-symbol-all (&optional nlines)
"Use all for highlighted symbols."
(interactive "P")
(if (thing-at-point 'symbol)
(all (highlight-symbol-get-symbol) nlines)
(error "No symbol at point.")))
(defun highlight-symbol-moccur (&optional arg)
"Use all for highlighted symbols."
(interactive "P")
(if (thing-at-point 'symbol)
(moccur (highlight-symbol-get-symbol) arg)
(error "No symbol at point.")))
(defun highlight-symbol-occur-by-moccur (&optional arg)
"Use all for highlighted symbols."
(interactive "P")
(if (thing-at-point 'symbol)
(occur-by-moccur (highlight-symbol-get-symbol) arg)
(error "No symbol at point."))))
(dolist (hook (list
'c-mode-common-hook
'c++-mode-hook
'php-mode-hook
'ruby-mode-hook
'cperl-mode-hook
'javascript-mode-hook
'js-mode-hook
'js2-mode-hook
'html-mode-hook
'octave-mode-hook
'matlab-mode-hook
'lisp-mode-hook
'emacs-lisp-mode-hook))
(add-hook hook '(lambda () (highlight-symbol-mode t))))
(global-set-key [f3] 'highlight-symbol-at-point)
;; (global-set-key [(control f4)] 'highlight-symbol-next)
;; (global-set-key [(control f3)] 'highlight-symbol-prev)
(global-set-key [(control f3)] 'highlight-symbol-next)
(global-set-key [(control f4)] 'highlight-symbol-prev)
(require 'key-chord nil t)
(require-if-locate key-chord
(key-chord-mode 1)
(defadvice toggle-input-method (around toggle-input-method-around activate)
(let ((input-method-function-save input-method-function))
ad-do-it
(if (eq input-method-function nil)
(setq input-method-function input-method-function-save))
;; 日本語入力時はkey-chordをOFFにする
(key-chord-mode (if current-input-method 0 1))))
;; 同一キー連続押しをkey-chordと判定する最大許容時間
;; →この時間以内に押せばkey-chordになる
(setq key-chord-one-key-delay 0.18)
;; 2つキー同時押しをkey-chordと判定する許容時間
(setq key-chord-two-keys-delay 0.08)
(key-chord-define-global "ie" 'iedit-mode)
(key-chord-define-global "gl" 'goto-line)
(key-chord-define-global "lp" 'list-packages)
(key-chord-define-global "pw" 'psw-switch-buffer)
(key-chord-define-global "pr" 'psw-switch-recentf)
(key-chord-define-global "JJ" 'comment-region)
(key-chord-define-global "FF" 'uncomment-region)
(key-chord-define-global "RE" 'replace-string)
;;; highlight-symbol
;; F3 ... シンボルのハイライト
;; C-F3 ... シンボルのisearch (prev)
;; C-F4 ... シンボルのisearch (next)
;; M-F3 ... query replace (カーソル以降)
;; S-F3 ... occur
;; C-M-F3 ... all-modeへ移行
;; →シンボルのisearchやqueryなどはハイライトせずとも使用可能
(key-chord-define-global "HH" 'highlight-symbol-at-point)
(key-chord-define-global "UU" 'highlight-symbol-query-replace)
(key-chord-define-global "OO" 'highlight-symbol-occur)
(key-chord-define-global "LL" 'highlight-symbol-moccur)
(key-chord-define-global "MM" 'highlight-symbol-occur-by-moccur)
(key-chord-define-global "II" 'highlight-symbol-all)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment