
Vimでは、単語をスキップするためにCtrl +矢印キーを設定しました。 gnome 端末内で Vim を実行すると正常に動作します。
ただし、使用時画面(tmux) 奇妙な動作を示します。カーソルの後ろのすべての項目を削除します。
ちなみに私のvimの設定は次のとおりです。
:inoremap <C-Left> <C-\><C-O>b
:inoremap <C-Right> <C-\><C-O>w
答え1
問題は2つあります。まず、tmux
制御矢印キーは、基本的にあるタイプのエスケープシーケンスから別のタイプに変換される。したがって、次の特殊キーはcontrolleft修飾子なしで送信されます。さまざまなエスケープシーケンスを頻繁に見ると、次のことがわかります。vim
leftcat -v
^[OD
それとは対照的に(tmuxの外側):
^[[1;5D
ライン
set-window-option -g xterm-keys on
この部分を修正しました。その他の部分は、デフォルトtmux
で使用される端末の説明ですscreen
。端末の説明にはありません説明する矢印キーを制御します。ターミナルデータベースの次のエントリは、gnome-terminal(VTE)に最適です。
次のようなものがあります。
screen
そのTERM
外部エントリが自動的に選択されていない場合は、実行vte
時に自動的に選択され、対応する設定ファイルを変更する必要があります。vte-256color
tmux
screen
しかし、.no conflictを妨げる可能性がある "screen.xterm"エントリはありませんTERM=xterm-new
。
デフォルト(最小)端末データベースがある場合(例:ncurses-base
Debian ではこれがないかもしれません。より一般的にxterm-256color
、vim、tmuxで使用できるほど近いです。
たとえば、これをファイルに追加すると、.tmux.conf
vimが期待どおりに機能します。
set -g default-terminal "xterm-256color"
追加資料:
- XTERM拡張(ターミナルデータベース)
- vim:矢印キーを割り当てる方法
- キーボードの送信内容をどのように確認できますか?
答え2
ここからbyobuでキーの組み合わせをバインド解除できます。
ファイルを生成します~/.byobu/.tmux.conf
(存在する場合は追加)。
set-window-option -g xterm-keys on
次に、以下を追加します~/.byobu/keybindings.tmux
。
unbind-key -n C-Left
unbind-key -n C-Right