読者です 読者をやめる 読者になる 読者になる

Poderosa で Home/End/Ctrl+→/Ctrl+← を使えるようにする

メインメニューから「オプション → 操作」を開いて、追加キー定義に次の通りに指定します。

Home=0x1b[1~, End=0x1b[4~, Ctrl+Right=0x1b[5C, Ctrl+Left=0x1b[5D

次のキー入力が有効になります。

キー readline のコマンド名 説明
Home beginning-of-line 行の先頭に移動
End end-of-line 行の末尾に移動
PageUp history-search-backward 入力行でコマンド履歴を後方に向かって検索
PageDown history-search-forward 入力行でコマンド履歴を前方に向かって検索
Ctrl+→ forward-word 単語単位でカーソルを後に移動
Ctrl+← backward-word 単語単位でカーソルを前に移動

※PageUp と PageDown はなにもしなくても最初からこの通りに動きます。

上手くいかないときは ~/.inputrc に次のように書いときます。

$include /etc/inputrc

"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": history-search-backward
"\e[6~": history-search-forward
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word

Home と End

普通は Home や End を押下すると ESC[1~ESC[4~ になるらしいです。 (CentOS6の)デフォルトの /etc/inputrc で、それらのキーが beginning-of-line と end-of-line にバインドされているので なにもしなくても Home と End で行の先頭と末尾に移動できるはずです。

が、なぜか Poderosa で Home や End を押下すると ESC[7~ESC[8~ になります。 ~/.inputrc でそれらのキーが beginning-of-line と end-of-line になるように設定することもできますが、 Poderosa の設定でどうにかした方が手っ取り早いので、そうしました。

Ctrl + → と Ctrl + ←

デフォルトの /etc/inputrc に次の通り記述があるので、それにあわせるように Ctrl + → と Ctrl + ← のキー定義を変更しました。

"\e[5C": forward-word
"\e[5D": backward-word

~/.inputrc の修正だけでどうにかする方法は判りませんでした・・・(~/.inputrc じゃなくて Poderosa の設定でどうにかしようと思い立ったきっかけです)