popd für CDR-basierte Verzeichnisverwaltung in zsh

popd für CDR-basierte Verzeichnisverwaltung in zsh

Ich habe vor kurzem angefangen,cdrin zum Merken der zuletzt verwendeten Verzeichnisse. Früher habe ich und dergleichen zshverwendet . Was ich vermisse, ist , was im Grunde bedeutet: „Ich bin mit der Verwendung dieses Verzeichnisses fertig, bring mich dorthin zurück, wo ich vorher war, und entferne diesen Eintrag im Stapel.“pushdpopd

Kann eine ähnliche Semantik mit erreicht werden cdr?

Bearbeiten: „Verlauf“ in „Stapel“ ändern.

Antwort1

Du kannst Tippen

cdr -p $PWD

und cdrwirdprunedas Verzeichnis, in dem Sie sich befinden, aus der Liste. Um ein anderes Verzeichnis zu bereinigen, ersetzen Sie einfach $PWDdurch den absoluten Pfadnamen des Verzeichnisses, das Sie entfernen möchten. Oder wenn Sie einen ganzen Satz von Verzeichnissen entfernen möchten, können Sie auch Glob-Muster im Argument verwenden. Und bevor cdr -pÄnderungen vorgenommen werden, wird Ihnen angezeigt, was die Ergebnisse Ihrer Aktion sein werden, und Sie werden aufgefordert, zu bestätigen, sodass Sie sich keine Sorgen machen müssen, „das Ganze versehentlich zu löschen“. Siehehttp://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Options-2Für mehr Information.


Um zum vorherigen Verzeichnis zurückzukehren, führen Sie Folgendes aus:

cd -

Sie können beides in einer Funktion kombinieren:

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
}

Übrigens: Du kannst cdrauch die Ausführung von cdBefehlen einrichten. Um dies zu aktivieren, füge Folgendes in deine ~/.zshrcDatei ein:

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

Dann wird jedes Argument, das Sie an übergeben cdrund das nicht spezifisch für ist, stattdessen cdran übergeben cd. Dann müssen Sie nicht darüber nachdenken, ob Sie cdoder verwenden cdr; Sie können einfach immer cdrfür alles verwenden. Siehehttp://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Configuration-2Für mehr Information.


Eine Sache, die ich vermisse, ist popd, was im Wesentlichen bedeutet: „Ich verwende dieses Verzeichnis nicht mehr, bringen Sie mich dorthin zurück, wo ich vorher war, und löschen Sie diesen Eintrag im Verlauf.“

Kleine Korrektur: popdentfernt kein Verzeichnis ausGeschichteentfernt es es aus demVerzeichnisstapel.

verwandte Informationen