Ouvrez le terminal ici dans le Finder Mac OS

Y a-t-il quelque chose de similaire à la fenêtre de commande ouverte Windows Powertoy pour Mac OS? J’ai trouvé quelques plugins via une recherche Google mais je voulais voir ce qui fonctionne le mieux pour les développeurs.

À partir de Mac OS X Lion 10.7, Terminal inclut exactement cette fonctionnalité en tant que service. Comme avec la plupart des services, ceux-ci sont désactivés par défaut. Vous devez donc activer cette option pour la faire apparaître dans le menu Services.

Préférences Système> Clavier> Raccourcis> Services

Activer le nouveau terminal dans le dossier . Il y a aussi New Terminal Tab at Folder , qui créera un onglet dans la fenêtre Terminal la plus en avant (le cas échéant, sinon, il créera une nouvelle fenêtre). Ces services fonctionnent dans toutes les applications, pas seulement dans le Finder, et ils fonctionnent sur des dossiers ainsi que sur les noms de chemins absolus sélectionnés dans le texte.

Vous pouvez même leur atsortingbuer des touches de commande.

Les services apparaissent dans le sous-menu Services de chaque menu d’application et dans le menu contextuel (Ctrl-clic ou clic droit sur un dossier ou un chemin d’access).

Le service Nouveau terminal à dossier devient actif lorsque vous sélectionnez un dossier dans le Finder. Vous ne pouvez pas simplement ouvrir le dossier et exécuter le service “in place”. Revenez au dossier parent, sélectionnez le dossier approprié, puis activez le service via le menu Services ou le menu contextuel.

De plus, Lion Terminal ouvrira une nouvelle fenêtre de terminal si vous faites glisser un dossier (ou un chemin d’access) sur l’icône de l’application Terminal et vous pouvez également faire glisser vers la barre d’tabs d’une fenêtre existante pour créer un nouvel onglet.

Enfin, si vous faites glisser un dossier ou un chemin sur un onglet (dans la barre des tabs) et que le processus de premier plan est le shell, il exécutera automatiquement une commande “cd”. (Glisser dans la vue du terminal dans l’onglet insère simplement le chemin d’access, comme dans les anciennes versions de Terminal.)

Vous pouvez également le faire depuis la ligne de commande ou un script shell:

open -a Terminal /path/to/folder 

Ceci est l’équivalent de la ligne de commande de faire glisser un dossier / chemin d’access sur l’icône de l’application Terminal.

Dans une note connexe, Lion Terminal a également de nouveaux services pour rechercher des pages de manuel: La page de manuel Ouvrir du terminal affiche la rubrique de page de manuel sélectionnée dans une nouvelle fenêtre de terminal et le manuel de recherche du terminal sélectionné. Le premier comprend également les références à la page de manuel (“open (2)”), les arguments de la ligne de commande de la page de manuel (“2 open”) et les URL de la page de manuel (“x-man-page: // 2 / open”).

Ce:

https://github.com/jbtule/cdto#cd-to

C’est une petite application que vous faites glisser dans la barre d’outils du Finder, l’icône s’intègre très bien. Il fonctionne avec Terminal, xterm (sous X11), iterm.

Une application que je trouve indispensable comme alternative est DTerm , qui ouvre en fait un mini terminal directement dans votre application. De plus, il fonctionne avec à peu près tout ce qui existe – Finder, XCode, PhotoShop, etc.

Précision (merci @ vgm64): si vous êtes déjà dans Terminal, cela vous permet de passer rapidement à la fenêtre du Finder la plus haute sans quitter le Terminal. De cette façon, vous pouvez éviter d’utiliser la souris.

J’ai ajouté ce qui suit à mon .bash_profile pour pouvoir taper cdff dans Terminal à tout moment.

 function ff { osascript -e 'tell application "Finder"'\ -e "if (${1-1} < = (count Finder windows)) then"\ -e "get POSIX path of (target of window ${1-1} as alias)"\ -e 'else' -e 'get POSIX path of (desktop as alias)'\ -e 'end if' -e 'end tell'; };\ function cdff { cd "`ff $@`"; }; 

C'est à partir de cette indication de terminal macosxhints.com .

Découvrez Open Terminal Here . Il peut être le plus similaire à “Ouvrir la fenêtre de commande ici”. J’ai utilisé >cdto et c’est très similaire mais cela semble être un peu mieux pour traiter avec les espaces … mais pas parfait.

Ce qui est très intéressant, c’est la possibilité de ” détecter les événements clés au début de l’application et de les utiliser pour modifier le comportement du script “, ce qui permet au script d’ouvrir un nouvel onglet dans la fenêtre du terminal le plus proche lorsqu’il est appelé en maintenant la touche. enfoncée. Astuce.

Notez également la réponse de PCheese. c’est probablement plus utile pour les utilisateurs de terminaux lourds!

Il y a une version mise à jour de la très belle et mince Open Terminal Here publiée par vgm64 et d0k . Le changement a été fait par James David Low . Il a publié la nouvelle version sur son site . Téléchargez simplement OpenTerminalHere.zip, extrayez-le, déplacez l’ensemble dans votre dossier Library / Scripts et faites-le glisser vers votre barre d’outils Finder.

Ce qui est spécial à ce sujet, c’est qu’il ouvre toujours un nouvel onglet si une fenêtre Terminal.app est déjà ouverte. Très utile! J’ai également noté que le style du bouton de l’application s’adapte mieux au style Finder.app de Snow Leopard que ne l’a fait cdto par le format expurgé .

De plus, vous pouvez copier un élément du finder en utilisant la commande-C, sauter dans le terminal (par exemple en utilisant Spotlight ou QuickSilver), taper “cd” et simplement coller avec la commande-v

J’ai créé un bundle avec 3 applications pour la barre d’outils du Finder. Les deux autres applications font:

  • ouvrir Textmate avec la sélection actuelle
  • ouvrir GitX avec le dossier actuel

Pour plus d’informations, voir ici: http://nslog.de/posts/71

Si vous installez des scripts Big Cat ( http://www.ranchero.com/bigcat/ ), vous pouvez append vos propres éléments de menu contextuel (clic droit). Je ne pense pas que cela vienne avec un script Open Terminal Here, mais j’utilise ce script (que je ne me rappelle pas honnêtement si je me suis écrit ou que je suis sorti de l’exemple de quelqu’un d’autre):


 on main(filelist) tell application "Finder" try activate set frontWin to folder of front window as ssortingng set frontWinPath to (get POSIX path of frontWin) tell application "Terminal" activate do script with command "cd \"" & frontWinPath & "\"" end tell on error error_message beep display dialog error_message buttons ¬ {"OK"} default button 1 end try end tell end main 

Des scripts similaires peuvent également vous donner le chemin complet vers un fichier sur un clic droit, ce qui est encore plus utile, je trouve.

C’est un peu plus que ce que vous demandez, mais je recommande le Path Finder de Cocoatech à tous ceux qui souhaitent que le Finder ait un peu plus de jus. Il comprend un bouton de barre d’outils pour ouvrir une fenêtre Terminal pour le répertoire en cours ou un volet rétractable avec une ligne de commande Terminal en bas de chaque fenêtre du Finder. Plus de nombreuses autres fonctionnalités dont je ne peux plus me passer. Logiciel très mature et stable. http://cocoatech.com/

Ok, je me rends compte que c’est un peu tard … peut-être que cette alternative n’était pas disponible au moment d’écrire le post?

Quoi qu’il en soit, j’ai trouvé que l’installation du paquetage pos via Fink (une condition préalable dans ce cas, peut-être qu’il y a quelque chose de similaire pour ceux qui utilisent MacPorts?) Est la solution la plus simple. Vous obtenez deux commandes:

  1. posd – qui donne le répertoire actuel de la fenêtre du Finder au premier plan (pour laquelle vous faites probablement un alias cdf = cd posd)
  2. fdc – qui bascule le répertoire en cours de la fenêtre Finder située au premier plan sur le pwd du terminal. Ceci est légèrement différent de «ouvert». qui ouvre toujours une nouvelle fenêtre de recherche.

Oui, vous devez passer à la fenêtre Terminal avant d’écrire cdf, mais je suppose que c’est plutôt économique de comparer à cliquer sur un bouton dans la barre d’outils du Finder. Et cela fonctionne aussi avec iTerm, vous n’avez pas besoin de télécharger un bouton séparé de la barre d’outils du Finder qui ouvre une fenêtre iTerm. C’est la même approche que celle proposée par PCheese, mais vous n’avez pas à encombrer votre fichier .bash_profile.

Si, comme moi, vous désactivez la barre d’outils du Finder, ce service ajoute un élément au menu contextuel de chaque dossier: http://blog.leenarts.net/2009/09/03/open-service-here/

Cela vous permet également d’ouvrir n’importe quel dossier que vous voyez dans l’arborescence du Finder.

J’utilise principalement cette fonction:

 cf() { cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')" } 

Vous pouvez également atsortingbuer un raccourci à un script comme ceux ci-dessous.

Réutiliser un onglet existant ou créer une nouvelle fenêtre (Terminal):

 tell application "Finder" to set p to POSIX path of (insertion location as alias) tell application "Terminal" if (exists window 1) and not busy of window 1 then do script "cd " & quoted form of p in window 1 else do script "cd " & quoted form of p end if activate end tell 

Réutiliser un onglet existant ou créer un nouvel onglet (Terminal):

 tell application "Finder" to set p to POSIX path of (insertion location as alias) tell application "Terminal" if not (exists window 1) then reopen activate if busy of window 1 then tell application "System Events" to keystroke "t" using command down end if do script "cd " & quoted form of p in window 1 end tell 

Toujours créer un nouvel onglet (iTerm 2):

 tell application "Finder" to set p to POSIX path of (insertion location as alias) tell application "iTerm" if exists current terminal then current terminal else make new terminal end if tell (launch session "Default") of result to write text "cd " & quoted form of p activate end tell 

Les deux premiers scripts ont deux avantages par rapport aux services ajoutés en 10.7:

  • Ils utilisent le dossier de la barre de titre au lieu de vous demander de sélectionner un dossier en premier.
  • Ils réutilisent l’onglet au premier plan s’il n’est pas occupé, par exemple en exécutant une commande, en affichant une page de manuel ou en exécutant emacs.

Il y a un bogue dans le script AppleScript sur OSX 10.6. (2 fenêtres de terminal ouvertes). J’ai corrigé cela en ajoutant la commande close après activation. Ceci ferme la première fenêtre du terminal.

 on run tell application "Finder" try activate set frontWin to folder of front window as ssortingng set frontWinPath to (get POSIX path of frontWin) tell application "Terminal" activate close do script with command "cd \"" & frontWinPath & "\"" end tell on error error_message beep display dialog error_message buttons ¬ {"OK"} default button 1 end try end tell end run