하지만 C-s C-w의 문제가 있다면 단어를 완벽하게 넣어주지 않는다는 점이다. Emacs 자체의 전반적인 특징이겠지만, 만약 단어 중간에 커서가 위치하고 있다면 커서 위치부터 단어 끝 까지만 검색어로 입력된다.
그렇다고 M-b를 눌러서 단어 첫 부분까지 이동해서 C-s C-w를 하는 건 굉장히 귀찮다. 그래서 해법을 찾던 중 괜찮은 코드를 발견했다.
(require 'thingatpt)
(defun my-isearch-yank-word-or-char-from-beginning ()
"Move to beginning of word before yanking word in isearch-mode."
(interactive)
(if (= 0 (length isearch-string))
(beginning-of-thing 'word))
(isearch-yank-word-or-char)
(substitute-key-definition 'my-isearch-yank-word-or-char-from-beginning
'isearch-yank-word-or-char
isearch-mode-map))
(add-hook 'isearch-mode-hook
(lambda ()
"Activate my customized Isearch word yank command."
(substitute-key-definition 'isearch-yank-word-or-char
'my-isearch-yank-word-or-char-from-beginning
isearch-mode-map)))
이 코드를 실행시킨 후 C-s C-w를 입력해 보면 단어 시작점 부터 해당 단어가 자동으로 검색어로 입력되어서 검색된다. C-w로 검색어를 입력한 이후 다시 C-w를 입력하면 계속 다음 단어가 검색어로 추가된다.
감상은? 편하다. 그 자체로 좋은거다. ;-)
참고 링크: http://emacswiki.org/emacs/SearchAtPoint
0 comments:
댓글 쓰기