이제 zsh()를 사용하도록 iTerm 세션을 구성했지만 현재 기본값 /usr/local/bin/zsh
대신 zsh를 사용하도록 tmux를 구성하려고 합니다 . /bin/bash/
지금까지 내가 읽은 어떤 것도 내가 있어야 할 곳에 도달하지 못했습니다. 제가 놓쳤을 수도 있는 아이디어나 내용이 있나요?
현재 설정에 대한 몇 가지 세부정보는 다음과 같습니다. 감사해요!
상태 확인:
1) iTerm을 엽니다
echo $SHELL
/bin/bash
ps -p $$
PID TTY 시간 CMD 19626 ttys000 0:00.52 /usr/local/bin/zsh
2) tmux 실행
tmux
echo $SHELL
/usr/local/bin/zsh
구성:
iTerm 프로필 > 일반 > 명령:
/usr/local/bin/zsh
.tmux.conf에서:
옵션 설정 -g 기본 쉘 /usr/local/bin/zsh
답변1
다음을 설정해야 합니다 default-command
.
set -g default-command /usr/local/bin/zsh
default-shell
변수는 비어 있을 때 로그인 셸을 만드는 데만 사용됩니다. default-command
이것이 기본값입니다.
또는 간단히 기본 쉘을 one 으로 변경할 수 있습니다 zsh
. 이 경우 tmux
비로그인 쉘 대신 로그인 쉘이 실행됩니다.
답변2
@cuonglm이 말한 것 외에도 .tmux.conf
.
예를 들어 저는 Mac의 iTerm에서 일반적인 복사 및 붙여넣기 통합을 사용합니다.
set-option -g default-command "reattach-to-user-namespace -l bash"
...zsh에서 제대로 작동하려면 다음과 같이 변경해야 합니다.
set-option -g default-command "reattach-to-user-namespace -l zsh"
답변3
이 tmux 설정을 일반 기본 설정에서 분리하려는 경우. 우아한 해결책은 $SHELL
다음을 조합 하여 사용하는 것입니다 -L
.
별칭을 다음과 같이 설정하세요.
alias zshtmux='SHELL=/usr/local/bin/zsh tmux -L zsh'
그러면 이름이 별도의 tmux 인스턴스가 생성됩니다 zsh
. 이 인스턴스의 기본 셸은 /usr/local/bin/zsh
다른 tmux 인스턴스와 별도로 일시적으로 변경됩니다.
여기에서 다음 인스턴스를 사용할 수 있습니다 zshtmux
.
zshtmux new
zshtmux attach