Emacs_etc のバックアップ(No.1) - アールメカブ

アールメカブ


Emacs_etc のバックアップ(No.1)


Linuxの備忘録

役に立つページ:

以下,その一部からの引用

Lisp は非常に括弧の多い言語です.それだけに対応する括弧が分かりにくくなります.また, C 言語などでも括弧をスムーズに移動できると,非常に便利になります.ここでは,そんな括弧に関連した標準のコマンドを紹介します.

_ C-M-f, C-M-b:現在のインデントで,式単位で移動

下のような関数で,青色のところの括弧にカーソルがあるとします.ここで, 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-n, C-M-p:括弧単位で移動する

C-M-fとほぼ同じ.ただし,括弧単位なので,多少移動の仕方が異なる.対応する 括弧に移動したい時に使うと便利.

_ C-M-u, C-M-d:インデントを 1 つ上がる (下がる)

青の位置からピンクの位置への移動です.

      	
     (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-a, M-e:文単位で移動

関数なら,その開始場所へ一気にジャンプできます.文章なら文の先頭 (あるいは行末) へ移動します.

移動後,M-kとすると,文単位で切り取りできます.C-a C-kと同じようなことを文単位でするのが,M-a M-kです.

_ C-M-a, C-M-e:関数単位での移動

関数単位で移動できます.

_ C-M-SPC:式をリージョンで選択

現在カーソルがある位置の式をリージョンで選択します.

_ C-M-k:式を切り取る

式の切り取りができます.

_ C-M-h

関数全体をリージョンで選択します.

_ C-M-\:リージョン内を再インデント

リージョン内のインデントをやり直します.

さらに,全体がどうなっているのか知りたい時には,C-x $ (set-selective-display) が便利です.これは,C-u 3 C-x $のように,引数を与えて使います.こうすると, 3 文字以上字下げされているものは表示されなくなります.そのため,全体を見回すのに便利です.

再度,C-x $とすると,隠れていた部分を元に戻すことができます.

ただし,このようにテキストの一部を隠すコマンドは物理行移動の Emacs Lisp や設定などとの相性が悪いです.ものによっては,カーソルが変なところへ移動してしまうこともあります.