Je me demandais s'il était possible de faire un clic droit à l'intérieur de n'importe quelle instance d'une fenêtre "Finder" afin d'avoir une option qui dit "Ouvrir le terminal ici". Ce serait vraiment utile.
Réponses
Trop de publicités?J'utilise principalement cette fonction :
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é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 ont quelques avantages par rapport aux services ajoutés en 10.7 :
- À partir de la version 10.9, il y a un bogue où les services qui reçoivent des dossiers en entrée ne sont jamais listés dans le menu des services en vue colonne. Si vous attribuez au service Nouvel onglet du terminal au dossier un raccourci clavier, il ne fonctionne pas en vue colonne.
- Ils utilisent le dossier de la barre de titre au lieu de vous demander de sélectionner d'abord un dossier.
- Ils réutilisent l'onglet le plus en avant s'il n'est pas occupé, par exemple pour exécuter une commande, afficher une page de manuel ou exécuter emacs.
Si vous utilisez 10.7 ou 10.8, modifiez tell application "Finder" to set p to POSIX path of (insertion location as alias)
à :
tell application "Finder"
if exists Finder window 1 then
set p to POSIX path of (target of Finder window 1 as alias)
else
set p to POSIX path of (path to desktop)
end if
end tell
Il existe un bogue dans les versions 10.7 et 10.8 (mais pas dans les versions 10.9 ou 10.6) qui fait que le Finder ignore les fenêtres créées après la dernière fois que le focus a été déplacé vers une autre application et inversement lorsqu'il obtient le message insertion location
propriété.
Essayez ça : https://github.com/nmadhok/OpenInTerminal
Il fonctionne avec les éléments de la barre latérale du Finder, les sélections multiples de dossiers/fichiers et tout ce que vous pouvez imaginer. Vraiment facile à utiliser !
Vous pouvez faire glisser n'importe quel fichier ou dossier du finder sur une fenêtre de terminal pour insérer une chaîne du chemin absolu dudit fichier ou dossier.
Cela fonctionnera sur toute installation standard (au moins jusqu'à 10.4 Tiger [ ¿Peut-être plus tôt ? ) sans avoir besoin d'un logiciel supplémentaire ou de manipuler les préférences, ce qui pourrait effrayer votre ami non-technicien si c'est sur son Mac que vous travaillez. Cette astuce fonctionne également pour n'importe quel processus qui s'exécute dans le Terminal, par exemple emacs ou vi (en supposant que vous avez mis vi dans le mode approprié, ou de toute autre manière que vous utilisez vi).
OpenInTerminal
Vous pouvez essayer OpenInTerminal : https://github.com/Ji4n1ng/OpenInTerminal
Il a une très belle icône et est implémenté comme extension du Finder. Il existe également deux versions ("regular" et "lite").
OpenInTerminal peut également être installé en utilisant homebrew :
brew install --cask openinterminal
Vous pouvez le faire avec la fonction de service.
Le site suivant contient un exemple d'un tel service : http://blog.leenarts.net/2009/09/03/open-service-here/