Tmux 구성은 새 창 또는 창 분할에서 PWD를 유지하지 않습니다.

Tmux 구성은 새 창 또는 창 분할에서 PWD를 유지하지 않습니다.

.tmux.conf file그래서 .NET 의 변경 사항을 반영하도록 업데이트하려고 합니다 . 이것을 내 conf에 추가했지만 불행히도 작동하지 않습니다. 내 새 창과 창은 항상 다음에서 시작됩니다.-cnew-window~/

# Saner splitting.
bind v split-window -c $PWD -h
bind s split-window -c $PWD -v

# Autorename sanely.
setw -g automatic-rename on

# Better name management
bind c new-window -c $PWD

내가 예상하는 동작은 새 창이나 창이 이전에 있던 창의 디렉터리에 있게 된다는 것입니다. 따라서 내가 창 1에 있다면 ~/Sites/project새 창도 거기에 있을 것입니다.

답변1

잘못된 예를 사용했습니다. ;) $PWD인수는 -c새로 생성된 창을 디렉터리에서 시작한다는 의미입니다.tmux서버는, 즉 처음 시작하는 디렉토리입니다 tmux. 현재 디렉터리창유리tmux내부 변수 에 저장됩니다 #{pane_current_path}.

* 'default-path' has been removed.  The new-window command accepts '-c' to
  cater for this.  The previous value of "." can be replaced with: 'neww -c
  $PWD', the previous value of '' which meant current path of the pane can
  be specified as:  'neww -c "#{pane_current_path}"'

따라서 원하는 것을 수행하는 올바른 방법은

# Saner splitting.
bind v split-window -c "#{pane_current_path}" -h
bind s split-window -c "#{pane_current_path}" -v

# Autorename sanely.
setw -g automatic-rename on

# Better name management
bind c new-window -c "#{pane_current_path}"

노트:이것은 것이다아니요sudo현재 창에서 다른 사람의 셸이 실행 중인 경우(이에 대해 혼란스럽기 때문에 명시적으로 설명합니다.) 하나의 실행 중이 거나 세션이 있으면 su새 창은 하나로 끝납니다 /. 설명하기 쉽습니다. tmux보안상의 이유로 적절한 권한이 없기 때문에 실행 중인 프로세스의 현재 작업 디렉터리를 가져올 수 없습니다(외부 사용자 프로세스의 중요한 상태를 읽을 수 없음) .

관련 정보