7

tmuxコマンドモードでは、次のように新しいウィンドウが作成され、vimが内部で開きます。

:new-window vim

vimを終了すると、ウィンドウも閉じます。それを維持する方法はありますか?

4

5 に答える 5

20

tmuxこのためのオプションがありますremain-on-exit::

tmux set remain-on-exit on
于 2011-03-15T13:42:04.687 に答える
4

私はこれが長い間死んだ質問であることを理解しています。しかし、私はtmuxの最近のユーザーであり、これと同じ質問がありました。あなたがこれをしたいかもしれないことがわかります:

tmux new-session bash -l 

それはあなたにbashウィンドウ(ログインシェル)を取得します。次に、必要なコマンドを実行します。完了すると、期待どおりにコマンドプロンプトに戻ります。多くの人がインタラクティブな「画面」のような振る舞いを探していると思います。これはそれを行う簡単な方法です。

于 2016-01-24T16:10:26.810 に答える
1

コマンドをシェルに「入力」するために、send-keysを使用します。これが私のget.allスクリプトです。これは多くのコマンドを起動します。そのうちのいくつかは、実行後に操作する必要があるかもしれません(そして私が持っていないコマンドもありますexit)。

#!/bin/sh
tmux att -t get ||
tmux \
  new -s get -n emacs \; \
  send-keys 'get.emacs' C-m \; \
  neww -n git \; \
  send-keys 'get.git' C-m \; \
  neww -n mini \; \
  send-keys 'get.mini' C-m \; \
  neww -n port \; \
  send-keys 'get.port' C-m \; \
  neww -n rakudo \; \
  send-keys 'get.rakudo' C-m \; \
  neww -n neil \; \
  send-keys 'get.neil && get.neil2 && exit' C-m \; \
  neww -n red \; \
  send-keys 'get.red && exit' C-m \; \
  neww -n cpan \; \
  send-keys 'get.cpan && exit' C-m \; \
  selectw -t emacs
于 2011-08-25T21:50:39.380 に答える
1

@JoSoの良いコメントを別の答えに移します。

ls -laこのコマンドは、最初のコマンドが終了 するとシェルにドロップします。 tmux new-window "/bin/sh -c 'ls -la; exec bash'"

于 2018-08-13T15:42:19.650 に答える
0

新しいウィンドウでプロセスを通常どおりに終了する場合(適切な終了など)、tmux new-window "vim ; exec bash"ほとんどの場合は問題ありません。

ただし、システム割り込み(SIGINTなど)を介して新しいプロセスを終了する場合。を使用する必要がありますtrap

tmux new-window "bash -c 'trap \"bash\" INT; tail -f foo'"

于 2021-07-28T14:20:39.650 に答える