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

アールメカブ


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

[[Linuxの備忘録]]

[[役に立つページ:http://www.bookshelf.jp/soft/meadow.html#SEC_Top]]:

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

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

* C-M-f, C-M-b:現在のインデントで,式単位で移動 [#vae5a591]

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

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

* C-M-u, C-M-d:インデントを 1 つ上がる (下がる) [#v2f75610]

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

       	

      (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:文単位で移動 [#r759ce6e]

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

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

* C-M-a, C-M-e:関数単位での移動 [#la736a9c]

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

* C-M-SPC:式をリージョンで選択 [#ua370a37]

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

* C-M-k:式を切り取る [#ye3b0ad3]

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

* C-M-h [#c65f79ec]

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

* C-M-\:リージョン内を再インデント [#e1fc447f]

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

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

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

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