なっく日報

技術やら生活やらのメモ

Tmux上で開いたVimだけなぜか<C-s>のキーバインドが効かない

ということが起きたのでその解決手順の流れを記しておきます。

ちなみに、自分の場合、サスペンドVimの<C-s>に割り当てています。 (tmuxのprefixが<C-z>派なので、サスペンドを<C-s>にしているのです)

Tmux上でなく、ターミナルで直接Vimを開いた場合

<C-s>でサスペンドできる

Vimキーバインドの確認

Vim:mapと打つ

n  <C-S>       * :suspend<CR>

ちゃんと設定されている

Tmuxのキーバインドの確認

tmuxで:list-keysと打つ

bind-key    -T prefix C-d              detach-client
bind-key    -T prefix C-h              select-pane -L
bind-key    -T prefix Tab              select-pane -t :.+
bind-key    -T prefix C-j              select-pane -D
bind-key    -T prefix C-k              select-pane -U
bind-key    -T prefix C-l              select-pane -R
bind-key    -T prefix C-n              next-window
bind-key    -T prefix C-o              rotate-window
bind-key    -T prefix C-p              previous-window
bind-key    -T prefix C-z              last-window
bind-key    -T prefix Escape           copy-mode
bind-key -r -T prefix C-]              paste-buffer

C-sには設定していなさげ。

Better Touch Toolsを疑う

アプリ別のキーの割当とかで変なの入ってないかと思って探すが、問題なさそう。

しゃーなく、<C-s> tmuxでググる

最後の手段ッ!・・・と思ってググッてみたら

stackoverflow.com

な回答が。

stty stop undefを打ったら直りましたw

実は、.zshrcにはstty stop undef入れているのでなぜ急に問題が起きたのかは謎ですが、 一旦解決したのでよかった。