Ouvrir le terminal ici dans le Finder Mac OS [fermé]
682
Existe-t-il quelque chose de similaire à «Ouvrir la fenêtre de commande ici» 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.
Depuis Mac OS X Lion 10.7, Terminal inclut exactement cette fonctionnalité en tant que service. Comme pour 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.
Activez le nouveau terminal dans le dossier . Il y a aussi Nouvel onglet de terminal dans le dossier , ce qui créera un onglet dans la fenêtre de 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 les dossiers ainsi que sur les chemins 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 d'application et dans le menu contextuel (Ctrl + clic ou clic droit sur un dossier ou un chemin d'accès).
Le service Nouveau terminal dans le 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 "sur 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 chemin d'accès) sur l'icône de l'application 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". (Le fait de glisser dans la vue du terminal dans l'onglet insère simplement le chemin d'accès 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
Il s'agit de l'équivalent en ligne de commande de faire glisser un dossier / nom de chemin sur l'icône de l'application Terminal.
Dans le même ordre d'idées, Lion Terminal propose également de nouveaux services pour rechercher des pages de manuel: Ouvrir la page de manuel dans Terminal affiche la rubrique de page de manuel sélectionnée dans une nouvelle fenêtre de terminal, et Rechercher les pages de manuel dans Terminal exécute "apropos" 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").
@ OlcayErtaş Qu'est-ce qui ne fonctionne pas? Tout dans ma réponse fonctionne sur Yosemite 10.10.x.
Chris Page
2
Dois-je redémarrer Finer? Je ne sais pas pourquoi, mais j'ai activé le service Nouveau terminal au dossier, mais cela n'a pas fonctionné.
Olcay Ertaş
13
@ OlcayErtaş vous devez cliquer avec le bouton droit sur une icône de dossier pour obtenir l'élément de menu; ne naviguez pas vers le dossier lui-même, mais vers son parent.
Jonathan Landrum
2
Je peux l'utiliser via un clic droit / services mais je ne peux pas l'utiliser via des raccourcis clavier.
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 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.
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 .bash_profileafin que je puisse taper cdffTerminal à 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 $@`"; };
"open" ouvre une nouvelle fenêtre du Finder dans le répertoire actuel
jolvi
2
@jolvi c'est le contraire de ce que cette réponse fournit. Le point n'est pas d'ouvrir une fenêtre de recherche sur pwd, mais cdvers le répertoire dans lequel la recherche est ouverte.
Jonathan Landrum
ah, désolé, bien sûr, vous avez raison.
jolvi
14
Découvrez Ouvrir 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 gérer les espaces ... mais pas parfait.
Ce qu'il a de très agréable, c'est la possibilité de " détecter les événements de frappe 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 avant 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 gros utilisateurs de terminaux!
Il existe une version mise à jour du très joli et mince Open Terminal Here publié 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 le bundle vers votre dossier Library / Scripts et faites-le glisser de là vers votre barre d'outils du Finder.
La particularité est qu'elle 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 correspond mieux au style Snow Leopard Finder.app que cdto publié par expurgé .
C'est génial! Notez que vous devez Command + Glisser (pas seulement faire glisser comme indiqué dans le post ci-dessus) vers la barre d'outils du Finder. Et puis vous avez un raccourci d'icône qui, lorsque vous cliquez dessus, terminera à partir de n'importe quel dossier.
B. Nadolson
10
En outre, vous pouvez copier un élément à partir du Finder en utilisant la commande-C, sauter dans le terminal (par exemple en utilisant Spotlight ou QuickSilver), tapez 'cd' et simplement coller avec command-v
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 vienne avec un applescript Open Terminal Here, mais j'utilise ce script (dont je ne me souviens pas honnêtement si je me suis écrit ou si je me suis éloigné 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 donner le chemin d'accès complet à un fichier par clic droit, ce qui est encore plus utile, je trouve.
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 en cours, ou un volet rétractable avec une ligne de commande de terminal au bas de chaque fenêtre du Finder. Et 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 package 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:
posd - qui donne le répertoire courant de la fenêtre du Finder la plus en avant (pour laquelle vous créez vraisemblablement un alias cdf = cd posd)
fdc - qui fait basculer le répertoire courant de la fenêtre du Finder le plus en avant vers le Terminal pwd. C'est légèrement différent de «ouvert». qui ouvre toujours une nouvelle fenêtre de recherche.
Oui, vous devez basculer vers la fenêtre Terminal avant d'écrire du cdf, mais je suppose que c'est assez bon marché par rapport à cliquer sur un bouton dans la barre d'outils du Finder. Et cela fonctionne également avec iTerm, vous n'avez pas besoin de télécharger un bouton de barre d'outils Finder distinct qui ouvre une fenêtre iTerm. Il s'agit de la même approche que celle proposée par PCheese, mais vous n'avez pas à encombrer votre .bash_profile.
cf() {
cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')"
}
Vous pouvez également attribuer un raccourci à un script comme ceux ci-dessous.
Réutilisez un onglet existant ou créez 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éutilisez un onglet existant ou créez 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 de la barre de titre au lieu de vous obliger à sélectionner 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.
Il y a un bogue dans AppleScript sur OSX 10.6. (2 fenêtres de terminal ouvertes). J'ai corrigé cela en ajoutant la commande close après activation. 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
Réponses:
Depuis Mac OS X Lion 10.7, Terminal inclut exactement cette fonctionnalité en tant que service. Comme pour 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.
Activez le nouveau terminal dans le dossier . Il y a aussi Nouvel onglet de terminal dans le dossier , ce qui créera un onglet dans la fenêtre de 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 les dossiers ainsi que sur les chemins 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 d'application et dans le menu contextuel (Ctrl + clic ou clic droit sur un dossier ou un chemin d'accès).
Le service Nouveau terminal dans le 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 "sur 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 chemin d'accès) sur l'icône de l'application 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". (Le fait de glisser dans la vue du terminal dans l'onglet insère simplement le chemin d'accès seul, comme dans les anciennes versions de Terminal.)
Vous pouvez également le faire à partir de la ligne de commande ou d'un script shell:
Il s'agit de l'équivalent en ligne de commande de faire glisser un dossier / nom de chemin sur l'icône de l'application Terminal.
Dans le même ordre d'idées, Lion Terminal propose également de nouveaux services pour rechercher des pages de manuel: Ouvrir la page de manuel dans Terminal affiche la rubrique de page de manuel sélectionnée dans une nouvelle fenêtre de terminal, et Rechercher les pages de manuel dans Terminal exécute "apropos" 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").
la source
Cette:
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.
la source
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.
la source
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
.bash_profile
afin que je puisse tapercdff
Terminal à tout moment.C'est à partir de cette astuce Terminal macosxhints.com .
la source
pwd
, maiscd
vers le répertoire dans lequel la recherche est ouverte.Découvrez Ouvrir 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 gérer les espaces ... mais pas parfait.Ce qu'il a de très agréable, c'est la possibilité de " détecter les événements de frappe 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 avant 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 gros utilisateurs de terminaux!
la source
Il existe une version mise à jour du très joli et mince Open Terminal Here publié 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 le bundle vers votre dossier Library / Scripts et faites-le glisser de là vers votre barre d'outils du Finder.
La particularité est qu'elle 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 correspond mieux au style Snow Leopard Finder.app que cdto publié par expurgé .
la source
En outre, vous pouvez copier un élément à partir du Finder en utilisant la commande-C, sauter dans le terminal (par exemple en utilisant Spotlight ou QuickSilver), tapez 'cd' et simplement coller avec command-v
la source
J'ai créé un bundle avec 3 applications pour la barre d'outils du Finder. Les deux autres applications:
Pour plus d'informations, voir ici: http://nslog.de/posts/71
la source
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 vienne avec un applescript Open Terminal Here, mais j'utilise ce script (dont je ne me souviens pas honnêtement si je me suis écrit ou si je me suis éloigné de l'exemple de quelqu'un d'autre):
Des scripts similaires peuvent également vous donner le chemin d'accès complet à un fichier par clic droit, ce qui est encore plus utile, je trouve.
la source
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 en cours, ou un volet rétractable avec une ligne de commande de terminal au bas de chaque fenêtre du Finder. Et de nombreuses autres fonctionnalités dont je ne peux plus me passer. Logiciel très mature et stable. http://cocoatech.com/
la source
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 package 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:
Oui, vous devez basculer vers la fenêtre Terminal avant d'écrire du cdf, mais je suppose que c'est assez bon marché par rapport à cliquer sur un bouton dans la barre d'outils du Finder. Et cela fonctionne également avec iTerm, vous n'avez pas besoin de télécharger un bouton de barre d'outils Finder distinct qui ouvre une fenêtre iTerm. Il s'agit de la même approche que celle proposée par PCheese, mais vous n'avez pas à encombrer votre .bash_profile.
la source
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.
la source
J'utilise principalement cette fonction:
Vous pouvez également attribuer un raccourci à un script comme ceux ci-dessous.
Réutilisez un onglet existant ou créez une nouvelle fenêtre (Terminal):
Réutilisez un onglet existant ou créez un nouvel onglet (Terminal):
Créez toujours un nouvel onglet (iTerm 2):
Les deux premiers scripts présentent deux avantages par rapport aux services ajoutés en 10.7:
la source
Il y a un bogue dans AppleScript sur OSX 10.6. (2 fenêtres de terminal ouvertes). J'ai corrigé cela en ajoutant la commande close après activation. Cela ferme la première fenêtre du terminal.
la source