9
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

bashで始めるEmacsキーバインド

Last updated at Posted at 2015-09-09

#動機

  • 一流のエンジニアはvi(m)もemacsも使えるような気がする
  • Emacsを使ってLispを勉強したい
  • 思い切ってviキーバインドを封印したいが、仕事の効率が落ちるためできない
  • bashでemacsのキーバインドを使い始めたら結構いい感じ

#Emacsのキーバインドが使えるところ
MacOSでは標準でEmacsライクなキーバインドがされていて、いろんなアプリケーションで使用できますし、
Windowsであればkeyhacというツールとこのスクリプトを使うことで簡単にEmacsライクなキーバインドに変更することができます。
また大抵の高性能EditorやIDEにはプラグインでEmacsのキーバインドを使用できます。

以降、emacsのキーバインドをを学ぶのになぜbashが始めやすいのかを説明していきたいます。

#bashで始めるのかなぜか?

##1. 覚えやすいキーバインドしか必要としない
emacsでは<C-x><C-c><C-x>kなどキーを複合させて使いうことが多いです。
Undo、Redo、切り取り、バッファのセーブ、バッファを閉じるなどの基本的なコマンドも複合キーによって実行され、
そう簡単には実行させてもらえません。
Emacsのテキスト入力系のキーバインドはが単一キーが多く使用されているので、比較的覚えやすいです。

##2. bashの標準のキーバインドがemacsのキーバインド
Emacsのキーバインドを学びたいと思ったらEmacsエディタを使うかOSなりEditorなりのキーバインドを変更しなければいけませんが、bashでは設定が必要ありません。

##3. キーバインドを覚えていなくてもたいして困ることがない
1.でも述べたようにEmacsのキーバインドで基本的な操作が複合キーになっていて少し覚えにくいです。
今までbashの標準のキーバインドがemacsのそれと知らずに使っていたとしても困ったことはあまりないはずです。

#3つのキーを封印する
Emacsキーバインドに慣れるには以下のキーを封印しましょう。

##1. 矢印キーを封印
思いの外すぐに慣れます。

  • ctrl+f 1文字右に移動
  • ctrl+b 1行下に移動
  • ctrl+n 1行上に移動
  • ctrl+p 1行下に移動
  • ctrl+a 行頭に移動
  • ctrl+e 行末に移動

##2. Enterキーを封印
慣れるとEnterがずいぶん遠く感じます。

  • ctrl+m Enterキーと同じ
  • ctrl+j Enterキーと同じ

##3. Deleteキーを封印
結構意識していないと、いつのまにか薬指がDeleteボタンにいっています。

  • ctrl+h 一文字前を削除
  • ctrl+d 一文字後ろを削除
  • ctrl+u カーソルから行頭まで削除
  • ctrl+k カーソルから行末まで削除

#まとめ
慣れないエディタで作業しようと思ったら初期コストがかかります。しかしそれは一気に学ぼうとするからで、
重要な事はできるだけ負荷を分散させることかなと思います。

ついつい封印したキーを押しそうになりますが押さないように努力しましょう。
初めの方は多少イライラしますが、少しするとゲーム感覚でできるようにります。

私はEmacsは冒頭でも述べた通り数時間しか触っていませんが、Emacsのキーバインドはなかなか楽しいです。

#謝辞
最後まで読んでいただき、誠にありがとうございます。

9
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?