ぴよログ

↓に移転したのでこっちは更新されません、多分。

ace-jump-modeをHyperキーと絡めてタイプ数減らすやつ

移転しました →

そのまんまこの記事のことを実践しただけなんだけど、すごくいい。

Emacsで1~3ストロークで画面上の任意の場所に移動するための設定 - non-nilEmacsで1~3ストロークで画面上の任意の場所に移動するための設定 - non-nilはてなブックマーク - Emacsで1~3ストロークで画面上の任意の場所に移動するための設定 - non-nil

例えばこんなケースを想像して欲しい。Emacsソースコードを書いていてカーソルは画面の一番上あたりにあり、次に編集したい箇所が画面の一番下あたりだったとする。

どうやって移動するだろうか?

  • 矢印キーで移動する
  • C-nで移動する
  • goto-lineで行番号を指定して移動する
  • インクリメンタル検索で移動する

選択肢はいくつかある。これまでの僕だったらインクリメンタル検索を使っていたと思う。

今日導入したace-jump-modeは上のどの選択肢にも勝る。特に最初に載せたページの設定を済ませておくと本当にタイプ数が少なくて済む。

ace-jump-modeは編集中のバッファの画面中に表示されている部分を対象に、キーボードでジャンプできるようにする機能だ。流れとしてはこんな感じ。

  1. ace-jump-modeを有効にする
  2. 移動したい箇所にある文字を1文字入力する
  3. 画面上に移動に使うキーが表示されるのでそのキーを入力

Hyperキーを組み合わせた設定では上のステップのうち1と2を同時に行ってしまう。例えばH-a(Hyperキーを押しながらa)はace-jump-modeを有効にしたあとaに移動したい、という指定をしたときの同じ挙動になる。そのため、最低2回の入力で目的地にカーソルを持っていけるということになるわけだ。

言葉で説明するのはとても難しいのでデモを用意した。

なおHyperキーには参考サイトと同じく右コマンドを割り当てている。