Emacs の特殊キー

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)入門GNU Emacs (UNIX text processing)
(1999/09)
デボラ キャメロン、エリック レイモンド 他

商品詳細を見る
関連記事
スポンサーサイト



Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
31位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
5位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

08月 | 2023年09月 | 10月
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。