192 votes

Comment ouvrir une fenêtre de terminal directement à partir de l'emplacement actuel du Finder ?

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.

11voto

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é.

6voto

nmadhok Points 161

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 !

5voto

roosto Points 540

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).

4voto

intagli Points 678

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

3voto

Jeroen Leenarts Points 139

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/

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X