Ubuntu のターミナルで複数のタブのセッションを記憶するにはどうすればよいですか?

Ubuntu のターミナルで複数のタブのセッションを記憶するにはどうすればよいですか?

私は vim で多くのファイルを開いて、ctags を使用してプログラム フローを編集およびトレースしていますが、次の再起動時にそれらの情報をすべて失いたくないため、システムを数週間または数か月間オンのままにしておくことはできません。

現在のターミナル状態や vim スタック状態を保存する方法はありますか?

同様の質問はこちら

答え1

読む:help :mksession

:mksession /path/to/sessionfile

このコマンドは、後で実行できるスクリプトを作成します。

:source /path/to/sessionfile

Vimを終了して起動すると、これらのコマンドが自動的に実行されますautocmdVim wikiのこのページアイデアのために。

ターミナル セッションの保存は別の問題です。tmux と screen はどちらもセッションの切断/再接続が可能ですが、再起動後もセッションが維持されるかどうかはわかりません。

編集

この答えtmux セッションをスクリプト化して後で復元する方法を説明します。おそらく、これに似たようなことが screen でも実行できるでしょう。

tmux または screen を使用しない場合は、ターミナル エミュレーターの機能のみが使用されます。

答え2

私も同じ問題に取り組まなければなりませんでした。残念ながら、多くのアプリケーションには、システムのシャットダウン時に終了するどころか、制御された方法で状態を保存する方法さえありません。

私の現在の解決策:

  • 冬眠私のすべてのラップトップおよびデスクトップ コンピューターの 99% のケースをカバーします。通常、コンピューターの電源をオフにしても、電源をオンにするとすべてが復元されます。これは、BIOS が Right Thing (TM) を実行するかどうかに依存しないため、私のシステムでは Suspend-to-RAM よりもはるかに安定しています。

    休止状態の唯一の問題は、別のカーネルで起動するときに使用できないことですが、ほとんどの人がカーネルをそれほど頻繁に更新するとは思いません...

  • スクリプト: アプリケーションの状態を保存しようとするのではなく、代わりに、起動するスクリプトをいくつか作成しgnome-terminalscreen初期タブ/画面と、自分に適した関連プログラムをあらかじめ選択することにしました。基本的に、デスクトップにログオンした後、標準的なターミナル セット、ファイル ブラウザーなどを起動する 10 分間の手間をほぼ省くことができました。

ほとんどのアプリケーション、特にコンソールの状態を考えると、これ以上改善できるとは思えません。これ以上のことについては、アプリケーションごとに個別に対応する必要があります。たとえば、Eclipse などの一部のアプリケーションは、状態を定期的に保存するように構成できます。

関連情報