まえがき
emacsのキーバインドが思い出せない。 **単語単位で移動**するやつ。どこにも書いてない。
だから僕は耳と目を閉じ口を噤んだ人間になっても、emacsのキーバインドだけは分かる人間になろうと考えた。だがならざるべきか・・・。
CAUTION:使用しているのがSpacemacsだということには注意。
執筆時の環境
- MacOSX Catalina 10.15.5
- Emacs 26.3 (Spacemacs 0.300.0 develop)
更新履歴 - 最新3つの履歴を残す(初版:2020/07/04(SAT))
- 2020/07/05(SUN): 7.の章を追加
- 2020/07/07(TUE): 章の番号を変更。4.の章を加筆
- 2020/07/19(SUN): 5. ウィンドウの操作を追加
0. 覚えよう
キーバインドの見方
- C: control
- M: alt
- S: ESC
- SPC: space
C-f: controlとfを同時押し。
(C-Aなどは、cotrol+shift+a。ここでは出ないが気にするな)
M-x goto-line: M-xのあとは命令文?を入力する形式。
やり直す
キー |
効果 |
C-g |
コマンドの実行を中止し、何も無かったことにする。 |
C-/ |
取り消す。アンドゥ。押すたびに1個づつ戻る。 |
何かがおかしくなったら
- デバッグモードでターミナルから起動する。
emacs --debug-init
-
C-x b
で*Message*バッファを開いてみる。
1. 文字入力のためのカーソル移動
編集の基本
キー |
方向 |
単位 |
捕捉 |
C-f |
右 |
文字 |
1つ動く。行を跨げる。 |
C-b |
左 |
文字 |
1つ動く。行を跨げる。 |
M-f |
右 |
単語 |
漢字とそれ以外の区切りへ。行を跨げる。 |
M-b |
左 |
単語 |
漢字とそれ以外の区切りへ。行を跨げる。 |
C-p |
上 |
行 |
1つ動く。 |
C-n |
下 |
行 |
1つ動く。 |
C-a |
頭 |
行 |
どこにいても先頭へ。 |
C-e |
尾 |
行 |
どこにいても末尾へ。 |
閲覧するとき用
キー |
方向 |
単位 |
捕捉 |
C-v |
上 |
画面 |
表示されている分が1画面 |
M-v |
下 |
画面 |
表示されている分が1画面 |
M-< |
頭 |
バッファ |
ページの先頭へ。 |
M-> |
尾 |
バッファ |
ページの末尾へ。 |
M-x goto-line |
|
|
指定した行へジャンプ。SpacemacsではM-g gでいける。 |
2. 編集する
キー |
動作 |
delete |
普通の削除。左へ。 |
fn+delete |
fnつけると逆方向。 |
C-k |
カーソル位置から末尾までカットする。改行は消せない。貼り付けできる。 |
C-@ |
範囲選択。選択開始からC-fやC-aを使える。範囲でコピーしたり切り取ったりしたいときに使う。マークする。 |
C-x h |
全範囲を選択する。マークする。 |
C-w |
カットする。 |
M-w |
コピーする。 |
C-y |
挿入。カーソルに位置にコピー、切り取りしたものを挿入。挿入なので範囲選択しても上書きはされない。 |
|
|
*Emacsでは範囲選択を「リージョンをマークする」という。 |
|
*Spacemacsの話だが、MajorモードによってはM-x i でインサーションを利用できたりする。 |
|
3. コーディングで使えるかもしれないヤツ
キー |
動作 |
M-; |
コメントアウト。 |
C-M-|一括でインデントする。 |
|
M-x tabify |
範囲選択内のスペースをタブへ変換する。 |
M-x untabify |
範囲選択内のタブをスペースへ変換する。 |
M-= |
範囲選択内の文字数と行数を数える。C-x hのあとにやればいいかも。 |
*メージャモードで用意されている機能も忘れるな。 |
|
4. フレームの操作
フレームの中にウィンドウがあるイメージ。
キー |
動作 |
M-m T F |
フルスクリーン(Spacemacs only) |
C-x 5 2 |
フレームを新規作成 |
C-x 5 0 |
アクティブなフレームの削除 |
C-x 5 1 |
アクティブでない全てのフレームの削除 |
C-x 5 b |
他のフレームで開いているバッファを選択 |
C-x 5 d |
他のフレームで新しいDiredを開く |
C-x 5 f |
他のフレームでファイルを新しく開く |
C-x 5 C-f |
同上。 |
C-x 5 m |
他のフレームで新しいメールを作成、送信。 |
C-x 5 o |
他のフレームへの移動 |
C-x 5 r |
Display Buffer Other Frame. |
Spacemacsにはフルスクリーンの機能が初めから用意されているので嬉しい。あまり使いどころが思い浮かばないキーバインドもあるが、メールを送ることもできるのでこの際メールもEmacsでやることにしよう。そうしよう。
5. ウィンドウの操作
キープレフィックス |
動作 |
C-x 0 |
アクティブなウィンドウを消す |
C-x 1 |
アクティブなウィンドウ以外を消す |
C-x 2 |
アクティブなウィンドウを上下に分割 |
C-x 3 |
アクティブなウィンドウを左右に分割 |
C-x 4 0 |
アクティブなウィンドウと表示されていたバッファを消す |
C-x o |
アクティブではない別のウィンドウへ移る |
C-x ^ |
アクティブなウィンドウの高さを増やす |
C-x } |
アクティブなウィンドウの横幅を増やす |
C-x { |
アクティブなウィンドウの横幅を減らす |
C-x + |
全てのウィンドウの高さを同じにする |
C-x - |
ウィンドウに表示する行数が必要ない場合、そのウィンドウを縮小します |
MacBookPro 13incの私にはあまり使わないキーバインド 。 |
|
6. バッファの操作
7. Diredの使い方
8. Emacs & Distribution
本家: GNU Emacs
Vimユーザー向け: Spacemacs - maser branch
Vimユーザー向け: Spacemacs - develop branch
Dark Side: Doom Emacs
むすび