ssh
を使用してLinuxボックスにアクセスしていますputty
。
走っていないときは、キーの組み合わせが正しく機能しますscreen
。ただし、セッションではCtrlキーの組み合わせは機能しませんscreen
。実際、a-Ctrlはany key組み合わせなしの同じキー登録と同じですCtrl。
Ctrl自分の端末に送信された文字を見つけるために組み合わせを入力し、入力してそれを知ることができVますCtrl。key
たとえば、Ctrl- ◄(左矢印)を入力すると^[[D
(screen
screen256カラー用語)が表示されます。◄私に同じ結果を与えた。
奇妙なことに、Altこのkey組み合わせはうまく機能します。
特に"前方の単語"と"後方の単語"キーバインディングをscreen
。
さまざまな端末を使用できるように修正してみました.inputrc
。だから私の.inputrc
外観は次のとおりです。
$if term=xterm
'xxx' : forward-word # xxx key gotten from Ctrl-V
'xxx' : backward-word
$endif
$if term=screen-256color
...
...
TERM
bash
また、プロファイル設定TERM
とキーボード端末マッピングを設定して、.screenrc
さまざまな端末を試してみましたPutty
。明らかなlinux
とxterm
は動作しません。しかし、明らかな理由で、私は設定のすべての置換を試みませんでした。
追加情報:
修正しましたが、方向キーの組み合わせが唯一動作しませんでした。展開バージョンはRHEL 6です。
.screenrc:
term xterm # tried other terms as well
shell -$SHELL # login shell to reload configs
caption string "%w"
hardstatus alwayslastline "%{b kw}%H %{r}%1` %{w}| %{g}%c %{w}| %{y}%d.%m.%Y %{w}| %{g}%l %{w}| %{-b kw}%u %-Lw%{= rW}%50> %n%f %t %{-}%+Lw%<"
vbell off
defscrollback 5000
PuttyのデフォルトのキーボードモードESC [n~
。
パテマニュアルでは:「基本モードでは、ESC [n〜で示されているファンクションキーはESC [11〜、ESC [12〜、etc.」)のようなシーケンスを生成します。」)これはデジタル端末の一般的な動作と一致します。
興味深いのは、実際に送信されるものですPutty
(最初の答えに従って)。https://superuser.com/questions/342848/cant-get-keyboard-to-work-Corrightly-in-putty)、はい
^[0D : left-arrow
^[[D : Ctrl-{left-arrow}
お互いに違うのでputty
問題にならないようですが?
FWIW、Puttyでアプリケーションカーソルキーモード設定を変更してみましたが、役に立ちませんでした。私もそれを試してみましたが、tmux
同じ問題に直面しました。
答え1
デフォルト設定では、PuTTYはカーソルキーを次に送信します。ノーマルたとえば、^[OA
画面上でカーソルキーを次に設定したときのモードです。アプリケーションモード(例:^[[A
。
これは、キーボードを開くために画面にエスケープシーケンスを送信することによって行われます(termcap ks
、terminfoから)。smkx
数字キーパッドとカーソルキーの両方が機能に存在するため、そのキーのアプリケーションモードを開くと発生しますks/smkx
。端末がある場合は、端末を初期化するときにこの画面機能を使用してください。 screenはまた、termcap関数(CS
設定されている場合)に文字列を送信して後続のアクションを実行します。これは、元のデザインがキーボードのみの初期化された端末記述を使用することであったことを示唆していますks/smkx
。
キーバインディングはカーソルキーから送信された文字列を期待しているため、これらの違いがわかります。ノーマルモデル。カーソルキーを変更する部分を省略するように画面の端末記述を変更する場合は、これらのバインディングを引き続き使用できます。
たとえば、次のようにできます。
infocmp screen >foo
vi foo
割り当てを変更します。
smkx=\E[?1h\E=,
到着
smkx=\E=,
それから
tic foo
修正された説明をコンパイルします。 (rootではない)ユーザーとしてこれを行うと、ticはコンパイルされた説明を~/.terminfo
ディレクトリに配置します。このアプローチには欠点があり、tput
キーバインディング情報を取得するのに最適です。しかし、簡単です。
追加資料:
- 個人用terminfoデータベースを設定するには?(ncurses FAQ)
- 特殊キー(xterm マニュアル)
答え2
私はこれを見つけました別の問題賞金を投稿した後...
*パテではCtrlと矢印キーが機能しません!私は何をすべきですか?
puttyはctrlのカーソルキーモードの意味を反転します。これはtmuxが正しく検出するのが少し難しいです。 Ctrlキーを正しく使用するには、kUP5(Ctrl-Upなど)が調整バージョンになるようにterminfo設定を変更し、tmuxがモードを変更しないようにsmkx / rmkxを無効にします。たとえば、.tmux.confで次の行を使用します(TERMをxtermに設定したとします)。
-g ターミナルオーバーライド設定 "xterm*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"
これはtmux 1.2以降でのみ機能します。
https://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ