new-window
作業ディレクトリを現在のディレクトリに設定して開くことができます。問題があれば、zshを使用しています。
new-window
作業ディレクトリを現在のディレクトリに設定して開くことができます。問題があれば、zshを使用しています。
回答:
以降tmuxの 1.9 default-path
オプションを使用する必要があるので、削除された-c
とのオプションをnew-window
、そしてsplit-window
(再結合などによってc
、"
および%
含まれるようにバインディングを
-c '#{pane_current_path}'
)。詳細については、この質問に対する他の回答をご覧ください。
関連する機能は、2012年2月初旬にtmux SVNトランクに上陸しました。このコードを含むtmuxビルドでは、呼び出すtmuxキーバインディングはnew-window
、現在のペインのアクティブプロセスと同じ現在の作業ディレクトリを持つ新しいウィンドウを作成します(default-path
セッションオプションは空です;デフォルトです)。同じsplit-window
ことは、コマンドがバインディング経由で呼び出されたときに作成されるペインにも当てはまります。
これは特別なプラットフォーム固有のコードを使用するため、現時点では特定のOS(Darwin(OS X)、FreeBSD、Linux、OpenBSD、およびSolaris)のみがサポートされています。
これは、tmux(1.7?)の次のリリースで利用可能になるはずです。
tmuxの 1.4、私は通常ちょうど使用します
tmux neww
目的の現在の作業ディレクトリが既にあるシェルで。
ただし、同じ現在の作業ディレクトリで多くのウィンドウを作成する必要があると予想される場合(または通常の<prefix> c
キーバインディングで開始できるようにしたい場合)、default-path
セッションオプションを次のように設定します。
tmux set-option default-path "$PWD"
必要な現在の作業ディレクトリがすでにあるシェルで(ただし、任意のディレクトリからそれを実行し、代わりに値を指定するだけでもかまいません)。
default-path
が空でない値に設定されている場合、のコマンドライン呼び出しから現在の作業ディレクトリを「継承」する代わりに、その値が使用されますtmux neww
。
tmuxののよくある質問はというタイトルのエントリを持っている別のアプローチを説明し、「私は、現在のウィンドウと同じディレクトリに新しいウィンドウを開くことができますどのように?」。それは少し複雑です。
default-path
セッションオプションの値(設定されている場合)を使用します。tmuxのよくある質問は、現在のウィンドウ内のシェル実行中のCWDで新しいウィンドウを起動するキーバインドする方法を説明しているエントリ(「私は、現在のウィンドウと同じディレクトリに新しいウィンドウを開くことができますどのように?」) 、しかし、この方法はかなり複雑です。おそらくsplit-window
andのnew-session
代わりにand でも同じことができneww
ます。
電流(1.9A)tmuxのmanページには、オプションの一覧表示-c start-directory
など、いくつかのコマンドのためのパラメータnew-window
とをsplit-window
。またpane_current_path
、を参照する
フォーマット変数も含まれていますCurrent path if available
。
これらを組み合わせることにより、現在の作業ディレクトリを使用して新しいウィンドウを開くことができ
new-window -c "#{pane_current_path}"
ます。現在のパスにスペースが含まれる場合は引用符が必要です。
現在のペインを垂直に分割する場合は、
split-window -c "#{pane_current_path}"
または、水平分割に使用します
split-window -h -c "#{pane_current_path}"
キーバインディングがデフォルトで現在の作業ディレクトリで新しいスプリットとウィンドウを開くようにするには、次をに追加します.tmux.conf
。"
周囲の引用符では、文字列を開始するのではなく結合してはならないTMUXを伝えるためにある"キーを。
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
prefix
- :
、その後、入力source ~/.tmux.conf
tmux source-file .tmux.conf
。
はい、使用しますnew-window -c "#{pane_current_path}"
。以下を追加し~/.tmux.conf
て永続化することができます(デフォルトのキーバインディングを想定):
bind c new-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
default-path
パス設定をした除去いずれかを使用してそのコミットメッセージで推奨上流コードとTMUX著者から-c "#{pane_current_path}"
または-c "$PWD
中new-window
とsplit-window
コマンド。
この重複した質問にも答えました。
tmuxの最新バージョン(v1.8、v1.7でも可能):
tmux new-window -c "$PWD"
tmux split-window -v -c "$PWD"
$PWD
tmux 1.9aで動作しないようです。pane_current_path
上記のように使用する必要がありました。
他の回答は、バインドとして(特にtmux split-window -c
)配置しようとするとうまくいきません。しかし、新しいウィンドウと分割の両方で機能する1年以上使用している独自のソリューションを作成しました。
~/.bashrc
:
PS1="$PS1"'$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#D" | tr -d %) "$PWD")'
~/.tmux.conf
:
unbind-key c
bind-key c run-shell 'tmux new-window "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind-key C new-window
bind-key - run-shell 'tmux split-window -v "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind-key | run-shell 'tmux split-window -h "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"
少なくとも、$(tmux -V)1.8で動作します。show-environmentコマンドを持たない古いtmuxで動作するバージョンについては、ここでコメントのない行を参照してください。
tmuxはバージョン1.8でそれを行いましたが、1.9では-c
フラグを使用するためにこの機能が削除されました。
これは解決したが、再結合することができますnew-window
が、場合には、あなたはそれがあまりにも長ったらしいなり何かを実行したい:代わりに入力するのneww man tmux
あなたが入力する必要がありますneww -c "#{pane_current_path}" man tmux
どのあなたはおそらく行うにはしたくありません。
エイリアスの使用、「モード」、変数、ループなどの複数のコマンドのバインドを可能にする適切なスクリプト言語をtmuxに追加するtmuxのmod(著者)があります。また、その動作を復活させます。 :新しいウィンドウとペインが現在のディレクトリで開かれます。
次のソースからビルドできます:http : //ershov.github.io/tmux/
<prefix>c
基になるシェルインスタンス(存在する場合)の作業ディレクトリを読み取り、default-path
実行する前に設定するためにマップする方法はありますかnew-window
。それともtmuxに尋ねるには多すぎる:)