以下,その一部からの引用
Lisp は非常に括弧の多い言語です.それだけに対応する括弧が分かりにくくなります.また, C 言語などでも括弧をスムーズに移動できると,非常に便利になります.ここでは,そんな括弧に関連した標準のコマンドを紹介します.
下のような関数で,青色のところの括弧にカーソルがあるとします.ここで, C-M-f(Ctrl+Alt+f) を何度か入力すると,ピンクの位置へカーソルが移動します.こんな風に,順番に同レベルの式へ移動できます.C-M-bなら逆方向へ移動できます.
(defvar lisp-mode-map (let ((map (make-sparse-keymap))) _ (set-keymap-parent map lisp-mode-shared-map)_ (define-key map "\e\C-x" 'lisp-eval-defun)_ (progn (message "test") )_ map) )
C-M-fとほぼ同じ.ただし,括弧単位なので,多少移動の仕方が異なる.対応する 括弧に移動したい時に使うと便利.
青の位置からピンクの位置への移動です.
(defvar lisp-mode-map (let ((map (make-sparse-keymap))) (set-keymap-parent map lisp-mode-shared-map) _ (define-key map "\e\C-x" 'lisp-eval-defun) (progn (message "test") ) map) )
関数なら,その開始場所へ一気にジャンプできます.文章なら文の先頭 (あるいは行末) へ移動します.
移動後,M-kとすると,文単位で切り取りできます.C-a C-kと同じようなことを文単位でするのが,M-a M-kです.
関数単位で移動できます.
現在カーソルがある位置の式をリージョンで選択します.
式の切り取りができます.
関数全体をリージョンで選択します.
リージョン内のインデントをやり直します.
さらに,全体がどうなっているのか知りたい時には,C-x $ (set-selective-display) が便利です.これは,C-u 3 C-x $のように,引数を与えて使います.こうすると, 3 文字以上字下げされているものは表示されなくなります.そのため,全体を見回すのに便利です.
再度,C-x $とすると,隠れていた部分を元に戻すことができます.
ただし,このようにテキストの一部を隠すコマンドは物理行移動の Emacs Lisp や設定などとの相性が悪いです.ものによっては,カーソルが変なところへ移動してしまうこともあります.