Emacs の特殊キー
使い方もそうですが、自分でキーバインディングを変更したり、lisp を書いたりするときに覚えておいた方がいいかなというものを挙げてみます。
C-u コマンド実行時の動作を変える
C-u の使いかたは基本的に C-u 数字 実行コマンドという形で使ったコマンドの繰り返しを指定します。
例えば、 C-u 1 0 C-f で右に 10 移動します。
また、数字を指定しなくても、 C-u を押した回数で数字を指定しなくても繰り返し数は
4, 16, 64, ... と増えていきます。
意外とコメントのラインを引くときに便利です。 C-u C-u C-u # で以下のような行になります。
################################################################
他にも、コマンドによっては C-u を押していると動作が変わるものがあります。
例えば C-s や C-r でインクリメンタルサーチですが、 C-u C-s や C-u C-r とした場合には正規表現を使ったインクリメントサーチとなります。
C-c モード用
Emacs の場合、 Lisp, C++ などのモード特有の機能は C-c で始めることになっています。
Windows でよく使うコピーのショートカットキーと同じなので、変えたいなということは多いと思います。
モードによっては設定ひとつで変えられるものもありますが、できないものも多いです。
そこで C-c のキーバインディングを変えたい場合には、 Windows でレジストリを使ってキー配列を変えるような処理を Emacs で行う必要があります。
例えば、 C-c と C-o を切り替えて、C-c にコピー機能を割り当てるには以下のように記述します。(ただし、Windows 上では上手くいきません。)
(keyboard-translate ?\C-c ?\C-o)
(keyboard-translate ?\C-o ?\C-c)
(global-set-key "\C-o" 'kill-ring-save)
C-h キーバインディングの表示
C-c や C-x はその後にキーを続けて入力します。
そういったキーの後に C-h を押すとその後にとりうるキーのキーバインディングの一覧が表示されます。
ちなみに、普通に最初からのキーバインディングの一覧を表示したい場合には、C-h b を実行します。
C-g 機能の逆転
処理の中断機能として C-g はよく使うと思います。
それ以外にも処理の機能の逆転を担うことがあります。
C-x u または C-/ で Undo が実行されます。 しかし、 Emacs には Redo は割り当てられていません。
C-/ で Undo していった場合、 C-g を押すとそこで処理が逆転して、 C-/ を押すと Redo (Undo 開始前の状態に近づいていく) するように切り替わります。
![]() | 入門GNU Emacs (UNIX text processing) (1999/09) デボラ キャメロン、エリック レイモンド 他 商品詳細を見る |
- 関連記事
Facebook コメント
コメント