cl termcapをカスタマイズすると、vimはgnu画面で停止します。

cl termcapをカスタマイズすると、vimはgnu画面で停止します。

端末内部のスクロールが心配され、特定のプログラムにのみ影響し、ウィンドウ間の切り替え時には影響がないように設定screenしておきました。altscreen on

printf '\ec'ターミナルをクリアするのがCtrl+L一般命令よりも優れていることを知っていて、これを適用することにclearしました。

cl項目のデフォルトのtermcapは、\E[H\E[J()の後に()が続くものと同じです。セッション内にある場合は、この値を取得できます。ho\E[Hcd\E[Jecho $TERMCAPscreen

clに変更すると\Ec予想した効果が現れるのか気になりましたが、成功しました。乾杯!しかし残念ながら、途方もない副作用がありました。矢印キーが内部的に機能しなくなりましたvim

それでもH、、キーを使用してナビゲートできるため、矢印キーを使用しない理由はありませんJKL

.vimrc変更が発生してセッション内で実行screenできるため、すべてのコンピュータで変更する必要があるため、変更を避けたいと思います。vimssh.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:質問に関連する他の実施にも影響を与える可能性があります。termcapterminfotermcap/info
vim:set term=linux.vimrc
lessscreen
注4:バグを報告しました。https://savannah.gnu.org/bugs/?54317

ベストアンサー1

おすすめ記事