web-dev-qa-db-ja.com

Tmuxプロンプトが通常のbashプロンプトに従わないPS1 \ W

Macで更新を行ったところ、設定の一部が壊れているようです。 .bash_profileに次のセットがあります

pS1 = "\ W $"をエクスポートします

これは私の通常のbashセッションで機能しており、パス全体ではなく現在のディレクトリのみを表示します。ただし、tmuxに切り替えると、パス全体が再び表示されます。色や他の文字など、bashプロファイルのPS1に対するその他の変更は正常に機能し、tmuxに反映されます。 .tmux.confを空にして、競合が発生していないかどうかを確認しましたが、この動作に変更はありませんでした。

私はシステム上に新しいユーザーを作成し、同じPS1を試しましたが、通常のセッションとtmuxの両方で完全に機能しました。

私はそれが機能していたことを知っていて、アップデートで何が変更されたのか理解できないため、ほとんど混乱しています。ここでは、.bash_profileと.tmux.conf以外にどのファイルを使用できますか? tmuxが設定をどこから取得しているかを知る方法はありますか?

追加情報:この動作は、iTerm2とTerminalTmuxバージョン1.8Mac OSX10.9.1の両方で同じです。

19
Paige

これは私のために働きます:tmux/terminal内:

tmux set-option -g default-command bash

または、単に~/.tmux.confに入れます:

set-option -g default-command bash
26
tmux-lover

私も同様の問題を抱えています。次のように、常にbashコマンドを適用してtmuxを起動すると、正しい結果が得られます。

tmux new bash

したがって、これを単純化するために、私は〜/ .bash_aliasesファイルにエイリアスを作成しました。これは常に使用しています。

alias tn='tmux new bash'

ただし、これは最初のウィンドウでのみ機能します。新しいウィンドウを作成するときは、ターミナルでbashを実行して、bashを再度開始する必要があります。

7
Samuel Lampa

同じ問題が発生しました。調査の結果、~/.tmux.confに次のコマンドを追加しました。

set-option -g default-command "reattach-to-user-namespace -l /opt/local/bin/bash --login"

OSX10.9.5とiTerm2Build 2.0.0.20141103、bash 4.3.30(1)-release、tmux1.9aを使用しています。 Bashとtmuxはmacportsからのものです。

3
srk

terminfoコマンドを使用して、システムのinfocmpデータベースに認識されている端末を検出することをお勧めします。 ~/.tmux.confに次のものがあります。

# Last match wins
if-Shell "infocmp xterm-256color" "set-option -g default-terminal xterm-256color"
if-Shell "infocmp screen-256color" "set-option -g default-terminal screen-256color"
if-Shell "infocmp tmux" "set-option -g default-terminal tmux"

infocmp Shell-commandが成功すると、次のset-optiontmuxコマンドが実行されます。

0
RobM

〜/ .tmux.confに次の行を追加します

set -g default-terminal "screen-256color"

0
ds-bos-msk