fishのキーバインド一覧

# はじめに
[前回の記事](http://qiita.com/ryotako/items/2d9d6fb646d2f3644dc8)ではfishのプラグインマネージャについて調べました．
プラグインで便利機能を導入したら，キーバインドの割り当てが必要ですよね！

というわけで，fishで余っているキーを探すべく，ちょっと調べてみたのでまとめました．
まぁ何の機能が割り当てられているのかは`fish_config`で見れるのですけど，機能の名称だけだとよくわからなかった＆キーの「空き」がすぐにわからないのでコメント付きで表にしました．

# `Ctrl`系
`Ctrl`キーと同時押しするものです．

なお割り当てられている機能には，名前がハイフン`-`区切りのものとアンダースコア`_`区切りのものの二種類があります．ハイフン区切りのものはキーバインド専用の機能ですが，アンダースコア区切りのものは`function`で定義されたfishの関数なので，`type`コマンドで定義が見れます．

key        | function                        | comment 
:---------:|:--------------------------------|:-------
`Ctrl` + a |`beginning-of-line`              |カーソルを行頭へ
`Ctrl` + b |`backward-char`                  |カーソルを一文字前へ
`Ctrl` + c |`__fish_cancel_commandline`      |ジョブの割り込み(SIGINT)
`Ctrl` + d |`delete-or-exit`                 |一文字削除．コマンドラインが空のときexit
`Ctrl` + e |`end-of-line`                    |カーソルを行末へ
`Ctrl` + f |`forward-char`                   |カーソルを一文字後へ
`Ctrl` + g |                                 |アラート(\a)と等価 
`Ctrl` + h |                                 |バックスペース(\b)と等価
`Ctrl` + i |                                 |タブ(\t)と等価
`Ctrl` + j |                                 |ラインフィード(\n)と等価
`Ctrl` + k |`kill-line`                      |カーソルより後を削除
`Ctrl` + l |`'clear; commandline -f repaint'`|画面のクリア
`Ctrl` + m |                                 |キャリッジリターン(\r)と等価
`Ctrl` + n |`down-or-search`                 |履歴を未来へ．あるいは履歴探索の開始
`Ctrl` + o |                                 |
`Ctrl` + p |`up-or-search`                   |履歴を過去へ．あるいは履歴探索の開始
`Ctrl` + q |                                 |
`Ctrl` + r |                                 |
`Ctrl` + s |                                 |
`Ctrl` + t |`transpose-chars`                |カーソルの前後の文字を入れ替える
`Ctrl` + u |`backward-kill-line`             |カーソルより前を削除
`Ctrl` + v |`fish_clipboard_paste`           |クリップボードからペースト
`Ctrl` + w |`backward-kill-path-component`   |パスの一要素を削除
`Ctrl` + x |`fish_clipboard_copy`            |クリップボードへペースト
`Ctrl` + y |`yank`                           |キルリングから貼り付け
`Ctrl` + z |                                 |ジョブの一時停止(SIGTSTPシグナルを送信)

# `Meta`系
Macのターミナル.appだと，環境設定から「メタキーとして`Option`キーを使用」にチェックを入れることで`Option(Alt)`キーを`Meta`キーとして使用できます．
矢印キーや改行キーとの組み合わせは今回調べていません．

key        | function                        | comment 
:---------:|:--------------------------------|:-------
`Meta` + a |                                 |
`Meta` + b |`backword-word`                  |カーソルを現在の単語の先頭に移動
`Meta` + c |`capitalize-word`                |カーソル上の文字を大文字に変更．カーソルが文字の上にないとき，次の単語の先頭を大文字に変更．
`Meta` + d |`kill-word`                      |現在の単語のカーソル以降を削除
`Meta` + e |`edit_command_buffer`            |エディタを起動してコマンドラインの内容を編集
`Meta` + f |`forward-word`                   |カーソルを現在の単語の一文字先へ移動
`Meta` + g |                                 |
`Meta` + h |`__fish_man_page`                |現在の単語について`man`の出力を表示
`Meta` + i |                                 |
`Meta` + j |                                 |
`Meta` + k |                                 |
`Meta` + l |`__fish_list_current_token`      |パスを入力中のとき，そのディレクトリで`ls`を実行
`Meta` + m |                                 |
`Meta` + n |                                 |
`Meta` + o |                                 |
`Meta` + p |`__fish_paginate`                |コマンドライン末尾に' ^ &#124; less'を挿入[^pager]
`Meta` + q |                                 |
`Meta` + r |                                 |
`Meta` + s |                                 |
`Meta` + t |`transpose-words`                |現在の単語と直前の単語を入れ替える
`Meta` + u |`upcase-word`                    |現在の単語のカーソル以降を大文字に変更
`Meta` + v |`edit_command_buffer`            |エディタを起動してコマンドラインの内容を編集
`Meta` + w |`'set tok (commandline -pt); if test $tok[1]; echo; whatis $tok[1]; commandline -f repaint; end'`|現在の単語について`whatis`の出力を表示
`Meta` + x |                                 |
`Meta` + y |`yank-pop`                       |キルリングを過去のものに置き換える
`Meta` + z |                                 |

# おわりに
調べてみると，意外なほどキーが余ってました．
キルリング使うのをやめてクリップボードだけにするとか，`Ctrl + t`とかの使い所のなさ気なキーを振り直すとかすれば，かなり空きがあります．

カスタマイズのしがいがありますね！
[^pager]: `PAGER`を`less`以外に設定している場合はそのページャが使用される