ウィンドウAで新しいウィンドウBを作成し、Aでコマンドを実行しない場合、BはAと同じパスワードで生成されます。これが私が望むものです。ただし、新しいウィンドウを作成するときにパスワードを一時的に変更するA(実際に接続された3つの別名コマンド)でbashコマンドを実行すると、Aで有効にする代わりにショートカットキーを押すとAのパスワードが生成されます。 Bのパスワードは私が実行しているコマンドです。
1)そのようなコマンドを実行する前にtmuxにpwdを使用して新しいウィンドウを作成させる方法はありますか? 2)1)が不可能な場合、パスワードを保存するためにコマンドを実行する正しい方法は何ですか?
私はこの.tmux.confでtmux 1.8を使用しています。
https://github.com/slnc/dotfiles/blob/master/.tmux.conf
ありがとう
答え1
分割を作成するときに必要なディレクトリを手動で提供するだけです。
:split-window -c "/dir/you/want"
例えば
<prefix>
、、、:
split-window -c "/var/lib/apt"
説明する
split-window
-c
サイズ、文字列補間、および作業ディレクトリを指定するためのさまざまなオプションを使用してパーティションを作成するtmuxコマンド。
~からman tmux | less '+/^\s*split-window'
split-window [-bdhvP] [-c start-directory] [-l size | -p percentage] [-t target-pane] [shell-command] [-F format] (alias: splitw)
ターゲットウィンドウを分割して新しいウィンドウを作成します。
水平分割の場合は-h、垂直分割の場合は-vaを指定しない場合は-vと仮定します。
-lおよび-pオプションは、それぞれ行(縦分割の場合)、セル(横分割の場合)、またはパーセントで新しいウィンドウのサイズを指定します。 -b オプションを使用すると、ターゲットウィンドウの左または上に新しいウィンドウが作成されます。他のすべてのオプションはnew-windowコマンドと同じ意味を持ちます。
次のコマンドをバインドすることもできます。
bind '"' split-window -v -c "$PWD" # Split panes horizontal
答え2
bind % split-window -h -c "#{pane_current_path}"
答え3
2つの問題があります。
tmux
現在のプロセスグループ(ioctlによって返される)から現在の作業ディレクトリをインポートしますtcgetpgrp(3)
。TIOCGPGRP
したがって、このような変数は#{pane_current_path}
常に現在実行されているコマンドの一時ディレクトリの変更を反映します。tmuxバージョン1.8は引数の
#{variables}
どれも拡張しません。拡張機能を使用しようとすると、新しいウィンドウが開きます。これが変わった-c
split-window
/
1.8と1.9の間。
#{pane_title}
エスケープシーケンスを使用して要求に応じて更新できるため、変数(エイリアス)を使用して#T
最初の問題を解決できます。
ペインが最初に作成されると、そのタイトルはホスト名です。ウィンドウタイトルは、OSCタイトルの設定順序で設定できます。例:
$ printf '\033]2;My Title\033\\'
カスタムを使用してPS1
このシーケンスを次に送信できますtmux
(xtermヘッダーを変更する同様のトリックを見たことがあるかもしれません)。
if [ -n "$TMUX" ] ; then
PS1='\[\e]2;$PWD\e\\\]'$PS1
fi
cd
これは、インタラクティブなbash(またはpushd
その他)に応答するがプロンプトを表示しない限り、bashエイリアスを含む他のフォアグラウンドプロセスには応答しません。
次に、キーバインディングをtmux.conf
次のように変更します。
bind-key '"' split-window -c "#T"
しかし、最新のtmuxバージョンにアップデートする必要があるかもしれません。