Ouvrez le terminal ici dans Mac OS finder [fermé]

Y a-t-il quelque chose de similaire à la "fenêtre de commande ouverte Ici" Windows Powertoy pour Mac OS? J'ai trouvé quelques plugins grâce à une recherche google, mais je voulais voir ce qui fonctionne le mieux pour les développeurs là-bas.

682
demandé sur Jonas 2009-01-07 17:21:21

14 réponses

Depuis 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 devrez donc l'activer pour le faire apparaître dans le menu Services.

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

Activer nouveau Terminal dans le dossier . Il y a aussi Nouvel onglet Terminal dans le dossier , qui va créer un onglet dans la fenêtre du Terminal le plus en avant (le cas échéant, sinon il va créer une nouvelle fenêtre). Ces Services fonctionnent dans toutes les applications, pas seulement Finder, et ils fonctionnent sur des dossiers ainsi que des noms de chemin absolus sélectionnés dans le texte.

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

Les Services apparaissent dans le sous-menu Services de chaque menu de l'application et dans le menu contextuel (clic droit ou clic droit sur un dossier ou un chemin d'accès).

Le Nouveau Terminal au Dossier service deviendra active lorsque vous sélectionnez un dossier dans le Finder. Vous ne pouvez pas simplement avoir le dossier ouvert et exécutez le service "en place". Revenez au dossier parent, sélectionnez le dossier approprié, puis activez le service via le menu Services ou le menu contextuel.

En outre, Lion Terminal ouvrira une nouvelle fenêtre de terminal si vous faites glisser un dossier (ou un chemin d'accès) sur L'icône de L'application de Terminal, et vous pouvez également faire glisser vers la barre d'onglets d'une fenêtre existante pour créer un nouvel onglet.

Enfin, si vous faites glisser un dossier ou un chemin d'accès sur un onglet (dans la barre d'onglets) 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 seul, comme dans les anciennes versions de Terminal.)

Vous pouvez également le faire à partir de la ligne de commande ou d'un script shell:

open -a Terminal /path/to/folder

C'est l'équivalent en ligne de commande de glisser un dossier / chemin d'accès sur L'icône de L'application du Terminal.

Sur une note connexe, Lion Terminal a également de nouveaux Services pour rechercher des pages de manuel: ouvrir la page de manuel dans Terminal affiche le sujet de la page de manuel sélectionnée dans une nouvelle fenêtre de terminal, et recherche les pages de manuel dans Terminal effectue "apropos" sur le texte sélectionné. Le premier comprend également les références de page de manuel ("open (2)"), les arguments de ligne de commande de page de manuel ("2 open") et les URL de page de manuel ("X-man-page: / / 2 / open").

900
répondu Chris Page 2015-06-16 18:43:45

Ceci:

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.

153
répondu redacted 2013-11-17 17:31:17

Une application que j'ai trouvée 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.

56
répondu Paul Alexander 2010-08-19 07:26:06

Clarification (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 Terminal. De cette façon, vous pouvez éviter d'utiliser la souris.

J'ai ajouté ce qui suit à mon {[1] } afin que je puisse taper cdff dans le 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 $@`"; };

Ceci vient de ceci macosxhints.com indice Terminal .

38
répondu PCheese 2010-10-04 19:35:47

Consultez Ouvrez le Terminal ici . 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 les espaces... mais il n'est pas parfait.

Ce qu'il a qui est très agréable est la possibilité de "détecter les événements key-down Au début de l'application et les utiliser pour modifier le comportement du script " permettant au script d'ouvrir un nouvel onglet dans la fenêtre frontale la plus terminale lorsqu'il est invoqué en maintenant bas ⌘ clé. Truc intéressant.

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

14
répondu physicsmichael 2009-04-13 04:28:48

Il existe une version mise à jour de la très belle et mince Ouvrir un Terminal Ici posté par vgm64 et d0k. Le changement a été fait par james david low. Il a publié la nouvelle version sur son site. Il suffit de télécharger OpenTerminalHere.compressez, extrayez-le, déplacez le bundle dans votre dossier Bibliothèque / Scripts et faites-le glisser vers votre barre d'outils du Finder.

Quelle est la particularité est qu'il ouvre un nouvel onglet si un Terminal.fenêtre d'application est déjà ouvrir. Très utile! J'ai également noté que le style du bouton de l'application s'adapte le Léopard des Neiges Finder.style d'application que cdto posté par expurgé a fait.

12
répondu pklaus 2010-08-15 11:08:30

En outre, vous pouvez copier un élément du finder en utilisant la commande-C, sauter dans le Terminal (par exemple en utilisant Spotlight ou QuickSilver) tapez ' cd ' et collez simplement avec la commande-v

10
répondu Henrik Hartz 2009-01-07 14:35:36

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

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

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

4
répondu stigi 2010-08-05 14:23:50

Si vous installez des Scripts Big Cat ( http://www.ranchero.com/bigcat/) vous pouvez ajouter vos propres éléments de menu contextuel (clic droit). Je ne pense pas qu'il soit livré avec un Terminal ouvert ici applescript mais j'utilise ce script (dont je ne me souviens pas honnêtement si j'ai écrit moi-même, ou soulevé de l'exemple de quelqu'un d'autre):


on main(filelist)
    tell application "Finder"
        try
            activate
            set frontWin to folder of front window as string
            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 obtenir le chemin complet vers un fichier sur un clic droit, ce qui est encore plus utile, je trouve.

3
répondu iayork 2009-01-10 17:07:54

C'est un peu plus que ce que vous demandez, mais je recommande 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 de Terminal pour le répertoire courant, ou un volet rétractable avec une ligne de commande de Terminal au bas de chaque fenêtre du Finder. De plus, de nombreuses autres fonctionnalités dont je ne peux plus me passer. Logiciel très mature et stable. http://cocoatech.com/

3
répondu 2009-03-11 13:55:05

Ok, je me rends compte que c'est un peu tard... peut-être que cette alternative n'était pas disponible au moment de la rédaction du post?

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

  1. posd-qui donne le répertoire courant de la fenêtre du Finder la plus proche (pour laquelle vous créez probablement un alias cdf = CD posd)
  2. fdc - qui bascule le répertoire courant de la fenêtre du Finder la plus proche vers le pwd Terminal. Ceci est légèrement différent de ' ouvert ."qui ouvre une nouvelle fenêtre du finder.

Oui, vous devez passer à la fenêtre du Terminal avant d'écrire cdf, mais je suppose que c'est assez bon marché comparé à 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 de barre d'outils Finder séparé 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 .bash_profile.

2
répondu Jonatan Lindén 2009-11-06 17:08:23

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 le Finder arborescence.

2
répondu joachim 2011-02-06 13:56:32

J'utilise surtout cette fonction:

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

Vous pouvez également affecter 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

Créez toujours 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 présentent deux avantages par rapport aux services ajoutés en 10.7:

  • Ils utilisent le dossier sur la barre de titre au lieu de vous obliger à sélectionnez d'abord un dossier.
  • ils réutilisent l'onglet le plus en avant s'il n'est pas occupé, par exemple en exécutant une commande, en affichant une page de manuel ou en exécutant emacs.
1
répondu user495470 2013-11-18 07:28:58

Il y a un bug dans L'AppleScript sur OSX 10.6. (2 fenêtres de terminal ouvertes). J'ai corrigé cela en ajoutant la commande close après activate. Cela ferme la première fenêtre du Terminal.

on run
    tell application "Finder"
        try
            activate
            set frontWin to folder of front window as string
            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
0
répondu Bernhard Essl 2010-07-30 11:18:40