Jak mogę otworzyć okno Terminal bezpośrednio z mojej bieżącej lokalizacji Findera?


Odpowiedzi:


134

Począwszy od systemu Mac OS X Lion 10.7, Terminal zapewnia usługi otwierania nowego okna lub karty terminala w wybranym folderze w Finderze. Działają również z bezwzględnymi ścieżkami wybranymi w tekście (w dowolnej aplikacji). Możesz włączyć te usługi za pomocą Preferencji systemowych> Klawiatura> Skróty klawiaturowe> Usługi . Poszukaj „Nowy terminal w folderze” i „Nowa karta terminalu w folderze”. Możesz także przypisać im klawisze skrótów.

Ponadto możesz teraz przeciągać foldery (i ścieżki) na ikonę aplikacji Terminal, aby otworzyć nowe okno terminalu, lub na pasek kart w oknie terminalu, aby utworzyć nową kartę w tym oknie. Przeciągnięcie na kartę (zamiast do widoku terminala) spowoduje wykonanie pełnego cdpolecenia, aby przejść do tego katalogu bez żadnego dodatkowego wpisywania.

Począwszy od OS X Mountain Lion 10.8, przeciąganie poleceń do terminala spowoduje również wykonanie pełnego cdpolecenia.

Uwaga: usługa Nowy terminal w folderze stanie się aktywna po wybraniu folderu w Finderze . Nie można po prostu otworzyć folderu i uruchomić usługi „na miejscu”. Wróć do folderu nadrzędnego, wybierz odpowiedni folder, a następnie aktywuj usługę za pomocą menu Usługi lub menu kontekstowego.


2
„Ponadto możesz teraz przeciągać foldery (i ścieżki) na ikonę aplikacji Terminal, aby otworzyć nowe okno terminala” - żartujesz sobie? to cudownie! :)
phil

3
W Mavericks 10.9.4 - skróty nie działają dla mnie. Dzięki za wskazówkę Drag and Drop :)
amar

1
@amar Czy możesz podzielić się z nami tym, co zrobiłeś? Również złamane dla mnie w 10.10
OJFord

2
@Olive - po aktualizacji do Yesomite skróty już nie działały dla mnie :(
amar

4
Jedną rzeczą, którą zauważyłem, i to w przypadku El Capitan, jest to, że musisz wybrać folder w Finderze (pojedyncze kliknięcie folderu, który widzisz w Finderze). Spodziewałem się, że zadziała to: otworzy okno Terminalu w bieżącym folderze. W rzeczywistości musisz wybrać folder w oknie.
sillygwailo,

19

Rozwiązanie problemów nazywa się Go2Shell i robi dokładnie to, co opisujesz . Możesz go znaleźć w App Store, a co najważniejsze ... jest całkowicie darmowy.

Go2Shell


Jeśli chcesz używać iTerm zamiast z Go2Shell, zapoznaj się z tą odpowiedzią, aby wyświetlić preferencje . Lub w skrócie, wpisz, open -a Go2Shell --args configaby wywołać konfigurację.
Jeromy Anglim,

@herherran wydaje się być teraz w porządku
Colas

1
Najnowsza wersja nie może zostać zainstalowana za pośrednictwem sklepu z aplikacjami, ale z ich witryny zipzapmac.com/Go2Shell lub przez brew cask install go2shell.
fiedl

udało mi się zainstalować najnowszą wersję v1.2.2 ze sklepu Apple / Itunes, działającą idealnie
ComputingFreak


13

cdto wydaje się być tym, czego potrzebujesz. Jest to mini-aplikacja, zaprojektowana do umieszczenia na pasku narzędzi Findera, po uruchomieniu otworzy okno terminala i cddo bieżącego katalogu w Finderze.


10

Dla tych, którzy używają iTerm, składnia AppleScript uległa zmianie w iTerm w wersji 3. Oto pełna procedura, którą należy wykonać, aby utworzyć skrót w Finderze.

  1. Uruchom Automator.

  2. Wybierz „Aplikacja”:

ilustracja instrukcji

  1. Wybierz „uruchom Applescript”:

wprowadź opis zdjęcia tutaj

  1. Wklej poniższy kod:

    -- get the current directory in Finder
    on run {input, parameters}
        tell application "Finder"
            set _cwd to quoted form of (POSIX path of (folder of the front window as alias))
        end tell
        CD_to(_cwd)
    end run
    
    -- change directory in iTerm (version >= 3)
    on CD_to(_cwd)
        tell application "iTerm"
            activate
    
            try
                set _window to first window
            on error
                set _window to (create window with profile "Default")
            end try
    
            tell _window
                tell current session
                    write text "cd " & _cwd & ";clear;"
                end tell
            end tell
        end tell
    end CD_to

wprowadź opis zdjęcia tutaj

  1. Kliknij „Plik” -> „Eksportuj”, aby wyeksportować jako .app, zapisz go /Applications.

  2. Przenieś aplikację na pasek ikon Findera, przytrzymując :

wprowadź opis zdjęcia tutaj

Gotowy !

Możesz zmienić ikonę w Finderze, postępując zgodnie z instrukcjami tutaj (zmień ikonę aplikacji utworzonej za pomocą Automatora).


9

Najczęściej używam tej funkcji:

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

Możesz także przypisać skrót do skryptu, takiego jak te poniżej.

Ponownie użyj istniejącej karty lub utwórz nowe okno (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

Użyj ponownie istniejącej karty lub utwórz nową kartę (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

Zawsze twórz nową kartę (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

Pierwsze dwa skrypty mają kilka zalet w porównaniu z usługami dodanymi w wersji 10.7:

  • Od wersji 10.9 występuje błąd polegający na tym, że usługi otrzymujące foldery jako dane wejściowe nigdy nie są wymienione w menu usług w widoku kolumny. Jeśli przypiszesz nową kartę Terminal w usłudze Folder skrót klawiaturowy, nie będzie działać w widoku kolumny.
  • Korzystają z folderu na pasku tytułu, zamiast wymagać najpierw wybrania folderu.
  • Używają ponownie pierwszej karty, jeśli nie jest zajęta, np. Uruchamiając polecenie, wyświetlając stronę podręcznika lub uruchamiając emacsa.

Jeśli używasz wersji 10.7 lub 10.8, zmień tell application "Finder" to set p to POSIX path of (insertion location as alias)na:

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

Wystąpił błąd w 10.7 i 10.8 (ale nie w 10.9 lub 10.6), w którym Finder ignoruje okna utworzone po ostatnim przeniesieniu fokusu do innej aplikacji iz powrotem podczas uzyskiwania insertion locationwłaściwości.



3

Możesz przeciągnąć dowolny plik lub folder z wyszukiwarki do okna terminala, aby wstawić ciąg bezwzględnej ścieżki do tego pliku lub folderu.

Będzie to działać na każdej standardowej instalacji (przynajmniej wstecz do 10.4 Tygrysa [ ¿może wcześniej? ]) Bez potrzeby dodatkowego oprogramowania, które zmieniamy preferencje, które może później przerazić twojego nietechnicznego przyjaciela, jeśli okaże się, że to jego / jej Mac, nad którym pracujesz. Ta sztuczka działa również w przypadku dowolnego procesu uruchomionego w Terminalu, np. Emacs lub vi (zakładając, że masz vi w odpowiednim trybie, ale robią to również ludzie, którzy używają vi).







-1

 

    OpenTerminal


1
Dead link :(. To jest powód, dla którego odpowiedzi tylko na link mają krótki okres użytkowania lub powinny być regularnie sprawdzane, aby pozostać przy życiu.
Dan

@ Daniel Zastąpiony archiwum.org link
grg
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.