Wie öffne ich eine neue iTerm2-Sitzung direkt im aktuellen Arbeitsverzeichnis?
- Einführung
- Standardverhalten und Herausforderung
- So konfigurierst du iTerm2, damit neue Sitzungen im aktuellen Arbeitsverzeichnis öffnen
- Alternative: Nutzung des Shell-Integration-Features
- Manuelles Öffnen von iTerm2 in einem bestimmten Verzeichnis via AppleScript
- Fazit
Einführung
iTerm2 ist ein sehr beliebter Terminal-Emulator für macOS mit zahlreichen nützlichen Features. Eines der häufig gewünschten Features ist es, eine neue Sitzung oder ein neues Tab direkt im aktuellen Arbeitsverzeichnis zu öffnen. Standardmäßig startet eine neue Sitzung in deinem Home-Verzeichnis, was oft umständlich sein kann, wenn man z.B. bereits tief in einem Projektverzeichnis arbeitet und dort weitere Shell-Instanzen öffnen möchte.
Standardverhalten und Herausforderung
Wenn du in iTerm2 mit Cmd + T ein neues Tab oder mit Cmd + N ein neues Fenster öffnest, startet die neue Shell-Instanz standardmäßig im Home-Verzeichnis des Benutzers. Dieses Verhalten resultiert daraus, dass das Terminal bei Beginn einer neuen Sitzung die Umgebungsvariable PWD oder das aktuelle Arbeitsverzeichnis der vorherigen Sitzung nicht berücksichtigt. Daher funktioniert es nicht "out of the box", dass eine neue Sitzung automatisch dort startet, wo du gerade bist.
So konfigurierst du iTerm2, damit neue Sitzungen im aktuellen Arbeitsverzeichnis öffnen
iTerm2 bietet eine Option namens Working Directory”, die das Verhalten steuert, in welchem Verzeichnis eine neue Sitzung angelegt wird. Um diese Funktion zu nutzen, musst du die entsprechenden Voreinstellungen ändern.
Öffne dazu die Einstellungen von iTerm2 über Cmd + ,. Wechsle in den Tab Profiles” und wähle das Profil, mit dem du arbeitest (üblicherweise Default”).
Im Reiter General” findest du den Bereich Working Directory”. Hier kannst du einstellen, wie iTerm2 das Startverzeichnis einer neuen Sitzung bestimmt.
Wähle dort die Option "Reuse previous sessions directory" oder "Advanced Configuration...". Insbesondere die erste Option sorgt meist dafür, dass ein neues Tab im selben Verzeichnis wie das gerade aktive Tab geöffnet wird. Falls diese Option nicht verfügbar ist oder nicht das gewünschte Verhalten zeigt, kannst du bei "Advanced Configuration" festlegen, dass iTerm2 über spezielle interne Mechanismen das Verzeichnis übernimmt.
Alternative: Nutzung des Shell-Integration-Features
iTerm2 bietet außerdem eine sogenannte Shell Integration, bei der ein kleines Skript in die Shell eingebunden wird, um iTerm2 genau über das aktuelle Verzeichnis zu informieren. Dadurch ist es möglich, dass iTerm2 eine neue Sitzung im selben Verzeichnis startet.
Um die Shell Integration zu nutzen, musst du in iTerm2 unter iTerm2 > Install Shell Integration das entsprechende Skript ausführen. Dieses installiert einen Befehl namens iterm2_shell_integration.zsh (oder für bash entsprechend), der beim Aufruf immer das aktuelle Verzeichnis an iTerm2 weitergibt.
Nach Installation musst du in deiner Shell-Konfigurationsdatei (~/.zshrc oder ~/.bash_profile) eine Zeile hinzufügen, die das Skript lädt, z.B.:
source /path/to/iterm2_shell_integration.zshSobald die Integration läuft, reicht es, neue Tabs oder Fenster zu öffnen und iTerm2 öffnet sie im aktuellen Verzeichnis der aktiven Sitzung.
Manuelles Öffnen von iTerm2 in einem bestimmten Verzeichnis via AppleScript
Eine weitere Möglichkeit, neue iTerm2-Sitzungen im gewünschten Verzeichnis zu öffnen, ist die Verwendung von AppleScript oder Automator. Dabei kannst du z.B. durch ein benutzerdefiniertes Skript oder einen Shortcut eine neue Sitzung starten, die explizit im aktuell gewünschten Verzeichnis geöffnet wird.
Ein einfaches AppleScript könnte so aussehen:
tell application "iTerm2" tell current window create tab with default profile tell current session of current tab write text "cd /pfad/zum/verzeichnis" end tell end tellend tellDieses Skript öffnet ein neues Tab in iTerm2 und führt den Befehl cd in das gewünschte Verzeichnis aus. Für dynamische Pfade müsste das Skript noch entsprechend angepasst werden, z.B. über Variablen, die aus anderen Programmen kommen.
Fazit
Die komfortabelste und nachhaltigste Lösung ist die Verwendung der integrierten Optionen von iTerm2 unter Profiles > General > Working Directory sowie die Installation der Shell Integration. So startet eine neue Sitzung oder ein neues Tab immer im aktuell geöffneten Verzeichnis. Für fortgeschrittene Nutzer bieten AppleScript oder Automator zusätzliche Möglichkeiten für maßgeschneiderte Workflows.
