私の問題を理解するには、以下の例をご覧ください。私のコンソールプロンプトが次のようになると思います。
user@server $ ls
"I opened a file temp"
user@server $ vi temp
tempは同じウィンドウで開き、tempを閉じても戻りません。
user@server $ ls
user@server $ vi temp
user@server $
代わりに、私はこのように戻ってきました。
user@server $ ls
user@server $ vi temp
"temp file content"
"temp file content"
"temp file content"
user@server $
これは私の目に見える画面スペースを占めており、このファイルの内容によっていくつかの重要な出力が失われる可能性があります。
答え1
端末には「代替画面」という機能があります。これにより、プログラムは別の仮想「画面」を使用し、終了時に前の画面を復元できます。
この機能をサポートする端末エミュレータが必要です。 Gnome-terminal、urxvt、xtermがすべて動作します。デフォルトでは無効になっている場合は見たことがありませんが、無効になっている場合はXresourcesを使用して有効にできます。 xtermまたはurxvtがある場合、または~/.Xresources
ファイルに~/.Xdefaults
以下を追加します。
xtermの場合:
XTerm*titeInhibit: false
urxvtの場合:
urxvt*secondaryScreen: true
一部のGUI端末には、代替画面を有効にするチェックボックスを持つオプションパネルがあります。
追加リソース:
答え2
screen
(またはbyobu
好む拡張バージョンがあります)を試してくださいscreen
。標準機能以上の特別な端末サポートは必要ありません。
次のように起動します。
screen
または
byobu
シンプル!
その後、新しいシェルが開きます。中に入ると、2番目の殻を開くことができます同時にを押しCtrl-AcてからCtrl-A1を使って切り替えることができますCtrl-A2。このプロセスを繰り返すと、一度にさらに開くことができます。
以下のように他のビューでvim(または他のもの)を開くこともできます。以内に既存の画面ビューの1つ):
screen vim blah
追加のボーナスで(シェルを終了するのではなく)ターミナルを閉じてログアウトし、次に再度ログインすると(コンピュータがまだ再起動されていない場合)、以前のセッションに再接続できます。
screen -r
欠点は、端末自体のスクロール機能を使用できないことです。screen
スクロール機能を使用する必要があります。をクリックしてCtrl-AEscページを上下に移動し、それを使用して通常モードに戻ることができますEsc。
答え3
vim-tinyバージョンではなく、vimバージョン全体を使用してください。 vimとvim-tinyはどちらもvi
元のエディタを置き換えるので、コマンドラインから簡単に呼び出すことができます。多くのディストリビューションにはvim-tinyが標準で用意されています。