zsh での cdr ベースのディレクトリ管理のための popd

zsh での cdr ベースのディレクトリ管理のための popd

最近使い始めたcdr最近のディレクトリを記憶するために をzsh使用します。以前は などを使用していましたpushd。 が恋しいのは です。popdこれは基本的に「このディレクトリの使用は終了しました。以前いた場所に戻して、スタック内のこのエントリを削除します。」という意味です。

同様のセマンティクスを で実行できますかcdr?

編集: 「history」を「stack」に変更します。

答え1

入力できます

cdr -p $PWD

そしてcdrプルーンリストから現在いるディレクトリを削除します。別のディレクトリを削除するには、$PWD削除したいディレクトリの絶対パス名に置き換えます。または、ディレクトリのセット全体を削除したい場合は、引数に glob パターンを使用することもできます。cdr -p変更を行う前に、アクションの結果が表示され、確認を求められます。そのため、「誤ってすべてを削除してしまう」心配はありません。http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Options-2詳細については。


前のディレクトリに戻るには、

cd -

これら両方を関数内で組み合わせることができます。

cdpop() {
  local dir=$PWD

  # `cdr` without arguments does the same `cdr 1`: Go back to the previous 
  # dir.
  cdr

  # `-P` does the same as `-p`, but is silent and doesn't ask for 
  # confirmation.
  cdr -P $dir
}

ちなみに、コマンドcdrを実行するように設定することもできますcd。これを有効にするには、ファイルに次の内容を追加します~/.zshrc

zstyle ':chpwd:*' recent-dirs-default true

すると、 に渡した引数cdrのうち に固有でないものは、代わりcdrに に渡されます。 または のどちらを使用するかcdを考える必要はなく、常にすべてに を使用できます。cdcdrcdrhttp://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Configuration-2詳細については。


私が懐かしく思うことの 1 つはpopd、基本的に「このディレクトリの使用は終了しました。以前いた場所に戻して、履歴内のこのエントリを削除してください」という意味の です。

小さな修正:popdディレクトリを削除しません歴史、それはそれを削除しますディレクトリスタック

関連情報