Tmux 세션 이름을 쉽게 변경하고 쉽게 관리

3353 단어 tmux
tmux , 편리하네요. 나는 사용하지 않는 날이 없을 정도로 의존하고 있습니다.
tmux 는 세션 창 창이라는 단위로 화면을 관리합니다.
나의 tmux 의 사용법으로, 프로젝트 단위(리포지토리, 폴더 등)로 세션, 목적 단위(상주 프로세스 기동, 소스 코드 편집등)로 윈도우, 태스크 단위(서버 기동·파일 변경 감시 등)로 페인을 나누고 있습니다.

그러나 아무것도 생각하지 않고 세션을 뱅뱅 시작하고 있다면



이렇게 됩니다.

어떤 세션에서 무엇을하고 있는지 모르기 때문에 전환 할 때 헤매습니다.
tmux 에는 세션에 이름을 붙이는 명령( rename-session )도 있습니다만, 일일이 세션명을 치는 것도 번거롭기 때문에, 반자동으로 좋은 느낌에 세션명을 붙여 주는 스크립트를 썼습니다.

tmux-rename-session
#!/bin/bash

if [ $# -lt 1 ]; then
    git status > /dev/null 2>&1
    if [ $? -eq 0 ]; then
        directory=`basename $(git rev-parse --show-toplevel)`
    else
        directory=`basename $(pwd)`
    fi
else
    directory=$1
fi

tmux rename-session ${directory//./_}

스크립트 단독으로 움직이면 지금 있는 디렉토리에 따라 다음과 같은 법칙으로 세션 이름을 변경합니다.
  • git 관리 폴더에있는 경우
  • 프로젝트의 루트 폴더 이름

  • git 관리 외부 폴더에있는 경우
  • 지금 폴더 이름

  • 스크립트에 인수를 건네준 경우
  • 인수 문자열


  • 또한 세션 이름에 .를 사용할 수 없으므로 이름에 .가 포함되어 있으면 _로 바꿉니다.
    ~/.tmux.conf 에서 이 스크립트를 키 바인딩 설정합니다.

    ~/.tmux.conf
    bind-key (key) command-prompt -p "Session name >" "run-shell 'cd #{pane_current_path} \; tmux-rename-session %%'"
    

    키 바인딩을 치면 상태 표시줄에 다음과 같은 프롬프트가 표시됩니다.



    그대로 엔터하면, 상기 1. 또는 2. 의 법칙으로 세션명이 바뀝니다.
    스스로 세션 이름을 결정하고 싶다면 프롬프트에 무언가를 입력하면 그쪽을 선호합니다.



    기본은 이름을 지정하고 싶은 세션에 있을 때 키바인드 > Enter로 OK입니다.
    강간 이름을 붙여 관리하기 쉽게 해 봅시다.

    좋은 웹페이지 즐겨찾기