Angenommen, Sie befinden sich im Ordner / very / cool / und / deeply / nested /. Und Sie möchten eine neue Terminal-Registerkarte im selben Ordner öffnen.
Wie würdest du das machen?
Ich benutze Mac OS und Zsh.
Verwenden Sie Oh-My-Zsh und fügen Sie das 'osx'-Plugin in Ihre ~ / .zshrc-Datei wie folgt ein:
plugins=(osx)
Wenn Sie die Terminal-App von OSX verwenden, müssen Sie auch das terminalapp
Plugin hinzufügen : credit
plugins=(osx terminalapp)
Wenn Sie iTerm verwenden, müssen Sie eine Konfigurationsoption festlegen ( Beachten Sie, dass Sie möglicherweise die zsh-Plugins nicht benötigen, damit dies funktioniert ): credit
Voreinstellungen> Profile> Standard> Allgemein> Arbeitsverzeichnis> Verzeichnisoption der vorherigen Sitzung wiederverwenden
Das ist alles was Sie tun müssen!
rails
ausgeführt wird und ich versuche, über Befehl-n ein neues Fenster zu öffnen, kehre ich in mein Ausgangsverzeichnis zurück.Eine weitere Option, die jetzt in Mac OS X Lion verfügbar ist, ist die Verwendung der integrierten Funktion. Es verwendet 'Escape-Sequenzen', um das aktuelle Verzeichnis herauszufinden. Bei mir funktioniert es, wenn ich diese Befehle in meinem .zshrc verwende:
es ist auch möglich
PS1
(für Bash, aus diesem Wiki ):wo
\e]2;
ist die Escape-Sequenz, um Dinge in der Titelleiste zu drucken. Es scheint, dass Terminal.app seine Informationen von dort erhält.Mehr Informationen:
quelle
/etc/bashrc
Sie werden jedoch feststellen, dass es auch einen neuen Escape-Code unterstützt, mit dem Terminal über einefile:
URL über das Arbeitsverzeichnis informiert wird. Diese URL kann alle gültigen Pfadnamen über die Prozentcodierung verarbeiten (die Fenster- / Tabulatortitel dürfen nur eine Teilmenge von ASCII-Zeichen enthalten ).\e]7;file://hostname/percent-encoded-pathname\a
chpwd () {print -Pn "\e]2; %~/ \a"}
?Dies ist eine sehr einfache Version, die ich in bash verwendet habe und die auch in zsh funktioniert. Der aktuelle Ordner wird nach jedem Befehl in einer Datei gespeichert (IMO schadet nicht zu sehr) und ein neues Terminal wird im gespeicherten aktuellen Ordner geöffnet.
Fügen Sie .zshrc Folgendes hinzu
quelle
gdirs scheint eine Möglichkeit zu sein, es fast zu tun: Neuer Tab, dann gdirs, um das tiefe Verzeichnis und voila auszuwählen. Meine erste Idee war, den Verzeichnisstapel für alle Tabs freizugeben und nach dem neuen Tab cd ~ 1 zu machen, aber ich kann nicht herausfinden, wie das geht, da anscheinend jede Instanz von zsh ihre eigene behält. Das Teilen des Verlaufs erfolgt über eine gemeinsame Datei. Vielleicht kann dies auch hier durchgeführt werden.
quelle
So machst du es in bash.
Dieses Shell-Skript teilt Terminal.app mit (im wörtlichen Sinne mit Applescript), um eine neue Registerkarte zu öffnen, und wechselt dann in das aktuelle Verzeichnis:
… Legen Sie das obige Shell-Skript in ein Verzeichnis in Ihrem
$PATH
(zB / usr / local / bin) und stellen Sie sicher, dass es ausführbar ist:( Quelle )
quelle
Wenn Sie diese neue Registerkarte sofort öffnen müssen, ohne Ihre Konfigurationsdateien zu ändern oder neue Plugins zu installieren, führen Sie Folgendes aus:
Öffnen Sie dann manuell eine neue Registerkarte Terminal (mit ⌘T) und in der neuen Registerkarte:
Warnung : Dadurch wird der Inhalt der Systemzwischenablage überschrieben.
Eine alternative, längere Methode, die die Zwischenablage nicht überschreibt:
Öffnen Sie Ihren neuen Tab.
quelle
Nach dem obigen Kommentar von Pieter
plugins=(git osx)
können Sie nach der Installation der Plugins einfach eingebentab
und es wird ein neuer Tab in Ihrem aktuellen Verzeichnis geöffnet.quelle
Wenn das Verzeichnis beim Öffnen einer neuen Registerkarte automatisch geändert werden soll, verwenden Sie das Verzeichnis- Plugin.
Das osx-Plugin speichert nur das letzte Verzeichnis, aber Sie müssen den Befehl ausführen
tab
, um eine neue Registerkarte zu öffnen, was nicht immer möglich ist (wenn Sie beispielsweise etwas in Ihrer aktuellen Registerkarte ausführen).quelle
Das Hinzufügen von terminalapp zu .zshrc hat bei mir nicht funktioniert, also habe ich nach dem Plugin gesucht
~/.oh-my-zsh/plugins/terminalapp
und es sagt mir:quelle
Im selben Ordner werden bereits neue Registerkarten geöffnet (Cmd + T). Für neue Fenster (Cmd + N) ist die Lösung von Pieter richtig:
quelle