設定画面に問題があります。
私はscreen.rc
とても簡単で、次のようになります。
altscreen on
termcapinfo xterm ti@:te@
SSHクライアントを使用して直接接続するのと同じように動作するように画面を設定したいと思いますMobaXterm
。だから私が達成したいのは次のとおりです。
- マウスでスクロール可能
vim
(マウス設定なしa
) - マウスでターミナル出力スクロール(Ctrl+なしA Esc)
- 他のエディタなどを終了したら、出力ではなく前のコマンドを表示したり、画面を消去したいと
vim
思います。vim
また、画面を使用して多くのコンピュータに接続し、すべてのコンピュータで変更できない.vimrc
ため、設定(および同様のローカル設定ファイル)は不可能です。.vimrc
私はこれを達成することは不可能であることがわかりました。したがって、私の端末ではこれら2行のコードを使用して.screenrc
端末出力をスクロールできますが、端末ではvim
キーボードを使用する必要があります。いいですね。
それでは、ポイントを見てみましょう。
休憩時にはvim
とても奇妙な行動が見えます。コンソールへの出力はコンソールが開かれる前と同じですので、vim
これが私が望むものです。ただし、プロンプトは最後のコマンド(run vim
)の後ではなくウィンドウの上部にあります。そこで、以前の結果に基づいて作成しました。
私はあなたが理解できることを願っています。問題を解決する方法を知っていますか?どんな助けでも大変感謝します。
これが言葉になるかどうかはわかりませんが、MobaXterm
画面を構成すると仮想マシンに接続することになりました。おそらくこれはSSHとも関係があるでしょう。
編集:他の同様のSSHクライアントも試してみましたが、同じことがありPutty
ました。
答え1
説明されている症状はrc
(回復カーソル)エスケープシーケンスによって引き起こされます。考えてみると、問題の源はおそらくvimです。
- 与えられた を使用して、プログラム
.screenrc
はscreen
xterm代替画面機能をエミュレートします。 - これは、terminfo
smcup
およびrmcup
(termcapti
および)制御シーケンスを使用してte
行われます。 - 切り替えるとき到着代替画面では、xtermは(a)カーソル位置を保存し、(b)代替画面を消去し、(c)代替画面を表示します。
- 切り替えるとき~から代替画面では、xterm は (a) カーソル位置を通常画面に復元し、(b) 一般画面を表示します。
- これらの作業は個別に行われるのではなく、単一の制御シーケンスで行われる。端末の説明で(infocmp出力)を見ることができます
1049
。 - この
screen
プログラムはこれらのタスクをシミュレートします。 - しかし、同じではないカーソル位置を保存/復元するために単一変数を使用しないxterm:クイックチェックで、次のことがわかります。
- カーソル位置を保存します(
tput sc
)。 - 代替画面に/から切り替える(
tput smcup
- 次は
tput rmcup
)で、最後に - カーソル位置の復元(
tput rc
)、 - その後、カーソルが保存された位置に移動します
tput sc
。
- カーソル位置を保存します(
vim - と vim のプラグイン - エスケープシーケンスを送信できます。 vimの終了時にカーソルを復元するためにエスケープシーケンスを送信するようです。ここで簡単に確認すると、vimが正常に動作していることがわかります(ただし、構成とバージョンが異なる)。それではプラグインを確認してみましょう。
この状況をデバッグする場合は、画面に送信された文字(script
usingなど)をキャプチャし、最も一般的なシーケンスを見つけますrc
。
- escape7
- escape[u
xtermの動作をより密接に一致させることをお勧めしますが、最終的に予期しない保存/復元カーソルシーケンスを送信するのに問題があるようですscreen
。vim
関連読書:
答え2
問題は愚かな配線によって引き起こされたことが判明した。.bashrc
TERM=xterm; export $TERM
したがって、screenを実行した後、この行を削除して問題がなくなりましTERM=xterm
たTERM=screen
。
答え3
ここで解決策を見つけました。端末でスクリーンリカバリを設定するには? vimの場合:
vimの場合は、次のものを含めることができます。
set t_ti= t_te=
~/.vimrcにあります。