현재 키 바인딩을 기본값으로 재설정하는 직접적인 방법은 없습니다. 기본 바인딩의 초기화 (in key_bindings_init()
)는 tmux 서버가 처음 시작될 때 한 번 수행 되며 (in server_start()
) 단일 키를 재설정하는 메커니즘이 없습니다.
구성 파일을 소싱하여 구성 파일에서 삭제 된 사용자 정의 바인딩으로 이전에 대체 된 기본 바인딩을 다시 설정하려는 원하는 시나리오의 경우, 사용자가 고안 한 방법이 합리적입니다 (불행하게도 장황하지만) : unbind-key -a
, 그런 다음 모든 "기본"바인딩을 다시 설정 한 다음 사용자 정의 바인딩을 설정하십시오 (일부 바인딩은 "기본"바인딩을 무시할 수 있음).
서버의 현재 바인딩은 list-keys
명령 * ; 이것은 제안 된 .tmux.reset.conf
파일을 생성 / 유지하는 데 도움이 될 수 있지만 현재 바인딩이 아닌 기본 바인딩 을 추출하는 방법이 필요합니다 .
*의 출력이 몇 가지 상황이 있습니다 list-keys
세미콜론 바인딩은으로 해석되는 것을 방지하기 위해 백 슬래시로 이스케이프의 세미콜론이 필요 : 현재 직접 사용할 수 없습니다 TMUX의 명령을 구분하고, 내부에 큰 따옴표를 사용하여 인수했다 어떤 바인딩 하나는 따옴표 (기본 바인딩은 이와 같지 않음)는 이중 qoutes 안에 큰 따옴표로 나옵니다.
기본 바인딩을 얻으려면 list-keys
출력을 캡처 할 수 있도록 최소한의 구성 (예 : 사용자 정의 바인딩 없음)을 가진 임시 서버가 필요합니다 . 실행할 수있는 tmux 서버 수에는 제한이 없지만 각각 다른 소켓 경로 이름을 사용해야합니다. 그만큼-L
및 -S
TMUX의 옵션은에서 소켓 이름 (지정하는 데 사용할 수 있습니다 $TMPDIR/tmux-$UID
.라는 이름의 소켓에 새 서버)에 대한 이야기로, 또는 전체 소켓 경로 이름을 정도 (또는 시작 temp
, 당신이 사용하는 것입니다 :
tmux -L temp …
사용하지 않도록 .tmux.conf
당신을 사용 , 당신 -f
은 그것을 읽도록 지시합니다 /dev/null
(항상 비어있는 특수 파일).
tmux -f /dev/null -L temp …
참고 : 이러한 /etc/tmux.conf
파일이 존재하는 경우 이를 처리 할 수 없습니다 . 이 "시스템 구성 파일"에 대한 경로는 하드 코드되어 있으며이를 우회 할 수있는 옵션이 없습니다 (코드 패치가 부족함).
일반적으로 new-session
실제로 서버를 시작 명령 하지만 세션을 원하지 않고 초기화 된 서버 만 쿼리하기를 원합니다. start-server
명령은 다음을 수행합니다. 세션을 작성하지 않고 서버를 시작합니다.
tmux -f /dev/null -L temp start-server …
이제 "query"명령 만 추가하면됩니다 (list-keys
이 경우).
tmux -f /dev/null -L temp start-server \; list-keys
참고 : 세미콜론은 tmux 명령 구분 자가 되기 때문에 쉘이 쉘 명령 구분자로 취급하지 못하도록 이스케이프 또는 따옴표로 묶어야합니다 .
유지 보수 할 세션이 없으므로 서버는 list-keys
명령 실행이 완료되면 자동으로 종료됩니다 .
따라서 다음과 같은 명령을 사용하면 .tmux.reset.conf
일시적으로.tmux.conf
파일을 (기본 바인딩 만 표시하도록) 기존 서버를 종료하지 않고도 파일 할 수 있습니다.
run-shell
명령이 동기식 인 경우 source-file
정적 파일 () 대신 구성 파일 (이후 처리 할 임시 파일로 캡처)에 이와 같은 호출을 포함 할 수 있습니다 .tmux.reset.conf
. 이렇게하면 항상 현재 버전의 tmux (기본 바인딩은 때때로 변경됨)의 기본 바인딩을 사용할 수 있습니다. 아아, run-shell
명령 의 완료 는 현재 후속 명령과 관련하여 비동기 적입니다 (명령 다음에 오는 run-shell
명령은 일반적으로 생성 된 프로세스 run-shell
가 완료 되기 전에 실행됩니다 ).