コマンドラインから次/前のディレクトリにすばやく切り替える方法

コマンドラインから次/前のディレクトリにすばやく切り替える方法

sub1サブディレクトリなどを含むディレクトリを検討してくださいsub2sub3

今、私が行った状況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]
}

関連情報