Supposons que vous êtes dans le dossier / very / cool / et / profondément / imbriqué /. Et vous voulez ouvrir un nouvel onglet de terminal dans le même dossier.
Comment feriez-vous cela?
J'utilise Mac OS et Zsh.
Utilisez Oh-My-Zsh et ajoutez le plugin 'osx' dans votre ~ / .zshrc comme:
plugins=(osx)
Si vous utilisez l'application Terminal OSX d'OSX, vous devez également ajouter le terminalapp
plugin: credit
plugins=(osx terminalapp)
Si vous utilisez iTerm, vous devez définir une option de configuration ( notez que vous n’avez peut-être pas besoin des plugins zsh pour que cela fonctionne ): credit
Préférences> Profils> Par défaut> Général> Répertoire de travail> Réutiliser l'option de répertoire de la session précédente
C'est tout ce que vous devez faire!
rails
cours d'exécution, et que j'essaie d'ouvrir une nouvelle fenêtre via commande-n, je me retrouve dans mon répertoire personnel.Une autre option maintenant disponible dans Mac OS X Lion utilise la fonctionnalité intégrée. Il utilise des "séquences d'échappement" pour trouver le répertoire actuel. Pour moi, cela fonctionne si j'utilise ces commandes dans mon .zshrc:
il est également possible d'utiliser
PS1
(pour Bash, à partir de ce wiki ):où
\e]2;
est la séquence d'échappement pour imprimer des choses dans la barre de titre. Il semble que Terminal.app tire ses informations de là.Plus d'information:
la source
/etc/bashrc
vous verrez qu'il prend également en charge un nouveau code d'échappement pour informer le terminal du répertoire de travail à l'aide d'unefile:
URL, qui peut gérer tous les noms de chemin valides via un codage en pourcentage (les titres de fenêtre / onglet ne peuvent contenir qu'un sous-ensemble de caractères ASCII )\e]7;file://hostname/percent-encoded-pathname\a
chpwd () {print -Pn "\e]2; %~/ \a"}
?C'est une version très simple que j'ai utilisée dans bash et qui fonctionne également en zsh. Il enregistre le dossier actuel dans un fichier, après chaque commande (ne fait pas trop de mal à OMI) et ouvre un nouveau terminal dans le dossier actuel enregistré.
ajoutez ce qui suit à .zshrc
la source
gdirs semble presque un moyen de le faire: nouvel onglet, puis gdirs pour sélectionner le répertoire deep et le tour est joué. Ma première idée était de faire en sorte que la pile de répertoires soit partagée entre tous les onglets et de faire cd ~ 1 après le nouvel onglet, mais je ne trouve pas comment le faire, car il semblerait que chaque instance de zsh conserve le sien. Le partage d'historique s'effectue via un fichier commun, alors peut-être que cela pourrait être fait ici aussi ...
la source
Voici comment vous le faites en bash.
Ce script shell indiquera (en silence, littéralement, en utilisant Applescript) Terminal.app pour ouvrir un nouvel onglet, puis basculer vers le répertoire actuel:
… Placez le script shell ci-dessus dans un répertoire de votre
$PATH
(par exemple, / usr / local / bin) et assurez-vous qu'il est exécutable:( source )
la source
Si vous devez ouvrir ce nouvel onglet maintenant, sans changer vos fichiers de configuration ni installer de nouveaux plugins, lancez ceci:
Puis ouvrez un nouvel onglet Terminal manuellement (avec ⌘T), et dans le nouvel onglet:
Attention : cela écrasera le contenu du presse-papiers du système.
Une méthode alternative plus longue qui n'écrase pas le presse-papiers:
Ouvrez votre nouvel onglet.
la source
Selon le commentaire de Pieter ci-dessus, une fois les
plugins=(git osx)
plugins installés, il vous suffit de tapertab
pour ouvrir un nouvel onglet dans votre répertoire actuel.la source
Si vous voulez que le répertoire change automatiquement quand un nouvel onglet est ouvert, utilisez le plugin dirpersist .
Le plug-in osx ne sauvegarde que le dernier répertoire, mais vous devez exécuter la commande
tab
pour ouvrir un nouvel onglet, ce qui n'est pas toujours possible (si, par exemple, vous utilisez quelque chose dans votre onglet actuel).la source
L'ajout de terminalapp à .zshrc ne fonctionnait pas pour moi alors j'ai cherché le plugin
~/.oh-my-zsh/plugins/terminalapp
et il m'a dit:la source
De nouveaux onglets s'ouvrent déjà dans le même dossier (Cmd + T). Pour les nouvelles fenêtres (Cmd + N), la solution de Pieter est la bonne:
la source