가끔 내가 작업 중인 특정 프로젝트와 어느 창이 관련되어 있는지 잊어버릴 때가 있습니다. 이 문제는 프로젝트 디렉토리를 떠난 다음 키보드를 장시간 냉각 상태로 두었을 때 cd
가장 자주 발생합니다 . C-B s
내가 찾고 있는 디렉터리가 표시된 작업 디렉터리에 없기 때문에 세션 목록( )을 찾아봐도 도움이 되지 않습니다.
dirs
수동으로 검색하지 않고도 쉘의 디렉터리 스택( )에 디렉터리가 저장된 창을 찾을 수 있는 방법이 있습니까 ? 즉, 하나의 창으로 전환하고 실행하여 dirs
grep으로 파이프한 후 다음 창으로 전환합니다. 세척/헹굼/반복할 필요가 없습니다.
나는 zsh
뛰고있어 autopushd
.
답변1
배열 등을 사용하는 cdr
대신 파일의 이전 디렉터리 목록을 유지 하도록 zsh를 구성하여 작업을 수행할 수 있습니다 .dirstack
pushd
man zshall
부분적 으로최근에 사용한 디렉토리 기억, 후크를 설치합니다.
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
add-zsh-hook chpwd chpwd_recent_dirs
그리고 변수에 recent-dirs-file
목록을 저장할 파일 이름을 구성합니다. 사용하여:
zstyle ':chpwd:*' recent-dirs-file ~/.chpwd-recent-dirs-${TTY##*/} +
각 tty에 대해 별도의 파일을 받게 됩니다.
따라서 디렉토리를 검색하려면 파일을 통해 grep하고 일치하는 파일 이름에서 tty 이름을 추출한 다음 tmux에 해당 tty로 전환하도록 요청하십시오. 저는 zsh 사용자도 아니고 tmux 사용자도 아닙니다. 따라서 이것은 단지 추측일 뿐이며 실제로 구현하는 방법에 대한 도움을 얻기 위해 (여기에 설명 대신) 새 질문을 게시할 수도 있습니다.