C-h
Ctrl-hはターミナル上では基本的にBackspace と同じ信号を送ります。
これはターミナルの種類や設定、またはシェル側の設定でも変更できたりします ので環境ごとにチェックが必要ですが基本的にはBackspace=Ctrl-hです。
最終的にtmuxなどソフトにどう認識されるか、が重要ですが、 手元のWindows + PuTTY/CygwinではCtrl-hは 完全にBackspaceとして見られ、 一方、MacのターミナルではCtrl-hはそのまま認識されてる様に なっています。
ここで、問題になってくるのがキーバインドする時にどうするか、で、 もともとMacで
bind-key -r C-h select-pane -L
bind-key -r C-j select-pane -D
bind-key -r C-k select-pane -U
bind-key -r C-l select-pane -R
みたいな感じでVimライクにPaneの移動をするようにしていましたが、 これだとWindowsで左へ移る、ができません。
tmuxの場合
これを有効にするためには、Ctrl-hの代わりにBackspaceをバインドしてあげる必要があり、
bind-key -r C-h select-pane -L
bind-key -r BSpace select-pane -L # Backspace
と、tmuxではBSpace
と表します。
コレ意外にも、通常のキー以外ではUp
やLeft
などのカーソルキー等。
DeleteはDelete
でもDC
と短縮形でもOK。
また、Enter
、Escape
、Space
、Tab
などはそのまま、
F1
などもそのまま書けます。
BackSpaceだけがちょっと特殊でBSpace
とB
側を短縮しないといけません。
それから”/’などはクォートして'"'
/"'"
として使う必要が有ります。
取り敢えず環境によってCtrol-hがどう捉えられるかわからないのと、 Backspaceは取り敢えず別途バインドする必要はないので、 上の様に両方書いておくのが吉です。
GNU screenの場合。
GNU screenの場合にも同じような問題はあって、
screenの場合にBackspaceをバインドしたい場合には、
-k
というtermcap keyboard capability name
1
で指定できるオプションを使って
bind ^h eval 'focus left'
bind -k kb eval 'focus left' #Backspace
とします。(kb
がBackspaceの名前。)
-
Ubuntu Manpage: termcap - terminal capability database
もしくは
man terminfo
でチェック。 ↩