명령줄에서 다음/이전 디렉터리로 빠르게 전환하는 방법

명령줄에서 다음/이전 디렉터리로 빠르게 전환하는 방법

sub1하위 디렉토리 등을 포함하는 디렉토리를 고려하십시오 sub2.sub3

이제 내가 처한 상황 sub3과 전환하고 싶은 상황을 생각하면 sub4비슷한 일을 하게 될 것입니다 cd ../sub4. 그러나 next"다음" 디렉토리로 전환하고 prev순서가 영숫자여야 하는 이전 디렉토리로 전환하고 싶습니다 (선택적으로 너무 누르기 mtime). 어쩌면 이것은 편리한 키보드 단축키에 바인딩될 수도 있습니다.

예를 들어, next"When you are in"을 사용하면 "etc" sub3로 이동합니다 sub4.

기본 제공 기능 zsh이나 즉시 사용할 수 있는 도구가 있나요?

답변1

다음과 같이 정의 cdprev하고 작동 할 수 있습니다 .cdnext

cdnext cdprev() {
  local dirs i
  dirs=(${PWD%/*}/*(nN-/))

  if (($#dirs <= 1)); then
    print -ru2 No other dir in $PWD:h
    return 1
  fi

  i=$dirs[(Ie)$PWD]
  if [[ $0 = cdnext ]]; then
    ((i++))
  else
    ((i--))
  fi
  ((i <= $#dirs)) || i=1
  ((i >= 1 ))     || i=-1

  print -ru2 $0: ${(D)dirs[i]}
  cd $dirs[i]
}

관련 정보