세션 이름의 tmux 문자열 보간

세션 이름의 tmux 문자열 보간

현재 세션과 동일한 이름으로 새 세션을 만들고 -2이름 끝에 추가 항목을 추가하려고 합니다.

bind C new-session -c "#{pane_current_path}" -s "#{session_name}"-2

session_named텍스트의 변수 이름이 삽입 되지 않고 대신 해당 이름으로 세션이 생성됩니다."#{session_name}"-2

나는 또한 tmux 2.6을 실행 중입니다.

답변1

이것은 tmux 2.1 및 2.6에서 작동합니다. 새 세션을 분리해야 합니다.

bind-key C run-shell 'tmux new-session -d -c "#{pane_current_path}" -s "#{session_name}-2"'

새 세션으로 전환하려면 switch-client이 클라이언트를 "다음" 세션으로 이동을 사용하면 됩니다.

bind-key C run-shell \
 'tmux new-session -d -c "#{pane_current_path}" -s "#{session_name}-2"' \;\
  switch-client -n

읽기 쉽도록 앞의 ​​백슬래시 ;와 여기서 바인딩을 3줄로 나누는 데 사용된 백슬래시를 참고하세요.

답변2

tmux첫째, 이것을 시도했을 때 중첩된 세션에 대한 경고 메시지를 받았고 tmux변수를 먼저 설정 해제하지 않는 한 작업 수행을 거부했습니다 $TMUX. 그렇게 하고 싶지 않습니다. 그래서 바인딩이 작동하는 이유가 조금 궁금합니다.

당신은 그것이 작동한다고 말했지만 단지 잘못된 이름으로 세션을 생성했을 뿐입니다. 아마도 다음을 시도해 보십시오:

bind C new-session -c "#{pane_current_path}" -s "$(tmux display-message -p "#S")-2"

이 솔루션은 셸의 명령 대체 관용구를 사용하려고 시도합니다 $(..).

관련 정보