私はそれを数ヶ月間使用してきましたが、tmux
1つの問題がありました。cd
シェルに何かを入力すると、私のホームディレクトリに移動します(これは標準的な動作なのでcd
驚くことではありません)。
私が望むのは、現在のtmuxセッションのデフォルトディレクトリに入ることです。
cd () {
if [ $# -eq 0 ]
then
command cd $TMUX_BASE_DIR # fictional environment variable
else
command cd $@
}
しかし、そのディレクトリを見つける方法が見つかりませんでした。 tmuxには組み込みコマンドはなく、環境変数も設定しません。また、マニュアルページを見ましたが、COMMANDS
セクションでVARIABLES
何も見つかりませんでした。ただし、新しいtmuxウィンドウを開くとこのディレクトリにリダイレクトされるため、このディレクトリをどこかに保存する必要があります。
もちろん、必要な動作を達成しようとするたびに新しいウィンドウを開閉しますが、これは確かに最適ではなく、より良い方法が必要です。
この動作を達成したり、tmuxからセッションベースディレクトリを取得する方法はありますか?それでは、どうすればいいですか?
答え1
私のtmux(1)マニュアルにはaが書かれているので、session_path
「tmux path session report」スクリプトのようなものを使って保存できます。
#!/bin/sh
TMPFILE=`mktemp /tmp/tps-report.XXXXXXXXXX` || exit 1
tmux run "printf '#{session_path}\n' > \"$TMPFILE\""
cat "$TMPFILE"
rm $TMPFILE
また、あなた$@
のものはおそらく"$@"
。