LoginSignup
8
7

More than 5 years have passed since last update.

Emacsで単語単位の移動をキャメルケースで区切りたい

Last updated at Posted at 2015-08-06

EmacsでM-f、あるいはM-bで単語単位の移動をすると、通常は英文字の大文字小文字を区別しない。そのため、たとえば moveToNextWord() の先頭でM-fすると、カーソルは ( の前に移動する。しかし、最近業務で使っているGoでは、コーディング規約上キャメルケースを使うので、M-fによる移動をキャメルケースの途中の大文字の箇所で区切って欲しいことが多々ある。
そのような場合はsubword-modeを使うと良い。

20-go-mode.el
(defun my-go-mode-hook
    (subword-mode 1))
(add-hook 'go-mode-hook 'my-go-mode-hook)

これで、上と同じ状況でM-fすると、カーソルはTの前に移動する。
ちなみに、全てのメジャーモードでこれを有効にしたいときには、(global-subword-mode 1)でOK。

ただし、この方法、人によってはちょっとした不都合があるかもしれない。
と言うのは、たとえばmoveToNextWord()のvの前にカーソルがある状態で、M-t(transpose-words)すると、結果はTomoveNextWord()となり、toMoveNextWord()とはならないからだ。
でも自分の場合、transpose-wordsを使ってないのでとりあえずこれで問題なし。


確認環境
GNU Emacs 24.5.1

参考URL
http://wikemacs.org/wiki/Subword-mode

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7