zsh를 사용하도록 tmux 구성

zsh를 사용하도록 tmux 구성

이제 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

관련 정보