
端末内部のスクロールが心配され、特定のプログラムにのみ影響し、ウィンドウ間の切り替え時には影響がないように設定screen
しておきました。altscreen on
printf '\ec'
ターミナルをクリアするのがCtrl+L
一般命令よりも優れていることを知っていて、これを適用することにclear
しました。
cl
項目のデフォルトのtermcapは、\E[H\E[J
()の後に()が続くものと同じです。セッション内にある場合は、この値を取得できます。ho
\E[H
cd
\E[J
echo $TERMCAP
screen
cl
に変更すると\Ec
予想した効果が現れるのか気になりましたが、成功しました。乾杯!しかし残念ながら、途方もない副作用がありました。矢印キーが内部的に機能しなくなりましたvim
。
それでもH
、、キーを使用してナビゲートできるため、矢印キーを使用しない理由はありませんJ
。K
L
.vimrc
変更が発生してセッション内で実行screen
できるため、すべてのコンピュータで変更する必要があるため、変更を避けたいと思います。vim
ssh
.vimrc
これが私が現在持っているものです.screenrc
:
vbell off
startup_message off
altscreen on
termcapinfo xterm* ti@:te@:cl=\Ec
#termcapinfo xterm* xn:hs@:cd=\E[J:ho=\E[H
私は背中の有無にかかわらずいくつかのバリエーションを試しましたが、ti
問題はそれcl
自体が価値があればうまく\E[H\E[J
いき、そうでなければうまくいかないようです。
問題を再現するには、上記のファイルを作成し、たとえばを使用して$HOME/.screenrc
セッションを開始screen -ADRS profile
し、tryを使用すると、vim .screenrc
キーボードのキー矢印を使用してナビゲートすることはできず、キーHJKL
のみを使用してナビゲートできます。
Screen version 4.03.01 (GNU) 28-Jun-15
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48)
\Ec
明確で同じ動作を持って作業を続けることは可能ですかvim
?
注1:@schilyが言ったように、これは必ずしもtermcap
問題ではありませんが、問題になる可能性がありますterminfo
。しかし、いずれにせよ、私は調整規則を両方に適用し、マニュアルに従って私のtermcapinfo
声明にステートメントを使用しています。.screenrc
専門家、私はこの問題を解決したいと思います。注2:makeで実行すると機能しますが、前述のように変更を避けたいと思います。注3:質問に関連する他の実施にも影響を与える可能性があります。termcap
terminfo
termcap/info
vim
:set term=linux
.vimrc
less
screen
注4:バグを報告しました。https://savannah.gnu.org/bugs/?54317