new-window
현재 내가 있는 디렉토리로 설정된 작업 디렉토리를 사용하여 열 수 있습니다 . 나는 사용하고있다다루기 힘든, 그게 중요하다면.
답변1
현재(1.9a) Tmux 매뉴얼 페이지에는 및를 -c start-directory
포함한 일부 명령에 대한 선택적 인수가 나열되어 있습니다 . 또한 참조하는 형식 변수도 포함되어 있습니다 .new-window
split-window
pane_current_path
Current path if available
이들을 결합하면 현재 작업 디렉터리를 사용하여 새 창을 열 수 있습니다.
new-window -c "#{pane_current_path}"
현재 경로에 공백이 포함된 경우 따옴표가 필요합니다.
현재 창을 수직으로 분할하려면
split-window -c "#{pane_current_path}"
또는 를 사용하여 수평으로 분할하세요.
split-window -h -c "#{pane_current_path}"
새 분할 및 창을 열 때 현재 작업 디렉터리 를 사용하도록 키 바인딩을 기본으로 설정하려면 .tmux.conf
."
"
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
답변2
다음으로 시작됨멀티플렉서1.9 이 default-path
옵션은 제거되었으므로 이 -c
옵션을 new-window
, 및 와 함께 사용해야 합니다 split-window
(예: , 및 를 다시 바인딩 c
하여 "
포함 %
)
-c '#{pane_current_path}'
. 자세한 내용은 이 질문에 대한 다른 답변을 참조하세요.
관련 기능이 로그인되었습니다멀티플렉서2012년 2월 초 SVN 트렁크.멀티플렉서이 코드가 포함된 빌드는멀티플렉서호출된 키 바인딩은 new-window
현재 작업 디렉토리가 현재 창의 활성 프로세스와 동일한 새 창을 생성합니다(세션 옵션이 비어 있는 경우 default-path
이것이 기본값입니다). split-window
바인딩을 통해 명령이 호출되면 명령에 의해 생성된 창도 마찬가지입니다.
특수 플랫폼별 코드를 사용하므로 현재 Darwin(OS X), FreeBSD, Linux, OpenBSD 및 Solaris와 같은 특정 운영 체제만 지원됩니다.
다음 버전에서는 이 기능을 사용할 수 있습니다.멀티플렉서(1.7?).
그리고멀티플렉서1.4, 제가 주로 사용하는 것은
tmux neww
원하는 현재 작업 디렉터리가 이미 있는 셸에서.
그러나 동일한 현재 작업 디렉터리로 많은 창을 만들어야 할 것으로 예상되는 경우(또는 일반적인 <prefix> 키 바인딩을 사용하여 창을 시작할 수 있기를 원하는 경우 ) 다음 을 통해 세션 옵션을 설정할 c
수 있습니다.default-path
tmux set-option default-path "$PWD"
원하는 현재 작업 디렉터리가 이미 있는 셸에서(물론 어느 디렉터리에서나 이 작업을 수행할 수 있지만 값만 지정하면 됩니다).
null이 아닌 값으로 설정 되면 default-path
명령줄 호출에서 현재 작업 디렉터리를 "상속"하는 대신 해당 값이 사용됩니다 tmux neww
.
이것멀티플렉서자주하는 질문좀 더 복잡하기는 하지만 "현재 창과 동일한 디렉토리에서 새 창을 여는 방법"이라는 항목이 있습니다.
답변3
사용 new-window -c "#{pane_current_path}"
.
파일에 다음을 추가하여 ~/.tmux.conf
파일을 영구적으로 만들 수 있습니다(가정).기본 키 바인딩):
bind c new-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind '"' split-window -v -c "#{pane_current_path}"
설정 default-path
은삭제됨1.9(2014년 2월 출시)부터 시작합니다. 변경 사항 중 작성자는 -c "#{pane_current_path}"
및 명령에서 또는를 사용할 것을 권장합니다.-c "$PWD
new-window
split-window
또 이렇게 대답했다질문이 중복되었습니다..
답변4
tmux split-window -c
다른 답변은 바인딩으로 사용하려고 시도했을 때 (구체적으로) 작동하지 않았습니다. 하지만 저는 1년 넘게 새 창과 분할 모두에서 작동하는 자체 솔루션을 개발했습니다.
~/.bashrc
:
PS1="$PS1"'$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#D" | tr -d %) "$PWD")'
~/.tmux.conf
:
unbind-key c
bind-key c run-shell 'tmux new-window "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind-key C new-window
bind-key - run-shell 'tmux split-window -v "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind-key | run-shell 'tmux split-window -h "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"
최소한 $(tmux -V) 1.8에서 작동합니다. 주석 처리된 행 보기여기show-environment 명령이 없는 이전 버전의 tmux에 적합합니다.