Otwórz terminal tutaj w wyszukiwarce Mac OS [zamknięte]

682

Czy istnieje coś podobnego do Windows Powertoy „Otwórz okno poleceń tutaj” dla Mac OS? Znalazłem kilka wtyczek w wyszukiwarce Google, ale chciałem zobaczyć, co najlepiej działa dla programistów.

Abdullah Jibaly
źródło

Odpowiedzi:

900

Począwszy od systemu Mac OS X Lion 10.7, terminal zawiera dokładnie tę funkcję jako usługę. Podobnie jak w przypadku większości usług, są one domyślnie wyłączone, dlatego musisz włączyć tę opcję, aby pojawiła się w menu usług.

Preferencje systemowe> Klawiatura> Skróty> Usługi

Włącz nowy terminal w folderze . W folderze znajduje się także Nowa karta terminala , która utworzy kartę w oknie terminala z przodu (jeśli istnieje, w przeciwnym razie utworzy nowe okno). Usługi te działają we wszystkich aplikacjach, nie tylko w Finderze, i działają na folderach, a także na bezwzględnych ścieżkach wybranych w tekście.

Możesz nawet przypisać im klawisze poleceń.

Usługi pojawiają się w podmenu Usługi każdego menu aplikacji oraz w menu kontekstowym (kliknij z wciśniętym klawiszem Control lub prawym przyciskiem myszy folder lub nazwę ścieżki).

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.

Ponadto Lion Terminal otworzy nowe okno terminala, jeśli przeciągniesz folder (lub nazwę ścieżki) na ikonę aplikacji Terminala, a także możesz przeciągnąć na pasek zakładek istniejącego okna, aby utworzyć nową kartę.

Wreszcie, jeśli przeciągniesz folder lub nazwę ścieżki na kartę (na pasku kart), a proces pierwszego planu jest powłoką, automatycznie wykona polecenie „cd”. (Przeciągnięcie do widoku terminala na karcie powoduje jedynie wstawienie nazwy ścieżki, tak jak w starszych wersjach terminalu).

Możesz to również zrobić z wiersza poleceń lub skryptu powłoki:

open -a Terminal /path/to/folder

Jest to odpowiednik wiersza polecenia przeciągania folderu / nazwy ścieżki na ikonę aplikacji Terminala.

W powiązanej notatce Lion Terminal ma także nowe Usługi wyszukiwania stron podręcznika : Otwarta strona podręcznika w Terminalu wyświetla wybrany temat strony podręcznika w nowym oknie terminalu, a strony wyszukiwania podręcznika w Terminalu wykonują „apropos” na zaznaczonym tekście. Ten pierwszy rozumie także odwołania do stron podręcznika („open (2)”), argumenty wiersza poleceń strony podręcznika („2 open”) i adresy URL stron podręcznika („x-man-page: // 2 / open”).

Chris Page
źródło
8
Nie działa na Yosemite.
Olcay Ertaş
2
@ OlcayErtaş Co nie działa? Wszystko w mojej odpowiedzi działa na Yosemite 10.10.x.
Chris Page
2
Czy muszę ponownie uruchomić Finer? Nie wiem dlaczego, ale włączyłem Nowy terminal w usłudze Folder, ale to nie działało.
Olcay Ertaş
13
@ OlcayErtaş musisz kliknąć prawym przyciskiem myszy ikonę folderu, aby uzyskać pozycję menu; nie nawiguj do samego folderu, ale do jego rodzica.
Jonathan Landrum
2
Mogę go używać poprzez kliknięcie / usługi prawym przyciskiem myszy, ale nie mogę używać go za pomocą skrótów klawiaturowych.
Can Poyrazoğlu,
153

To:

https://github.com/jbtule/cdto#cd-to

Jest to mała aplikacja, którą przeciągasz na pasek narzędzi Findera, ikona bardzo ładnie pasuje. Działa z Terminalem, Xterm (pod X11), iterm.

zredagowane
źródło
56

Aplikacja, którą uznałem za niezbędną jako alternatywę, to DTerm , która faktycznie otwiera mini terminal bezpośrednio w Twojej aplikacji. Dodatkowo działa z prawie wszystkim - Finder, XCode, PhotoShop itp.

Paul Alexander
źródło
38

Wyjaśnienie (dzięki @ vgm64): jeśli jesteś już w terminalu, pozwala to szybko przejść do najwyższego okna Findera bez opuszczania terminalu. W ten sposób możesz uniknąć używania myszy.

Dodałem następujące, aby .bash_profilemóc cdffw dowolnym momencie wpisać Terminal.

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 $@`"; };

To jest z tej wskazówki macosxhints.com Terminal .

PCheese
źródło
„otwórz” otwiera nowe okno Findera w bieżącym katalogu
jolvi
2
@jolvi, co jest przeciwieństwem tego, co zapewnia ta odpowiedź. Nie chodzi o to, aby otworzyć okno Findera pwd, ale o cdkatalog, w którym Finder jest otwarty.
Jonathan Landrum
Ach, przepraszam, oczywiście, że masz rację.
jolvi
14

Sprawdź Open Terminal tutaj . Może być najbardziej podobny do „Otwórz okno poleceń tutaj”. Użyłem >cdtoi jest to bardzo podobne, ale wydaje się, że jest to trochę lepsze w radzeniu sobie z Przestrzenią ... ale nie jest idealne.

To, co ma, jest bardzo miłe, to możliwość „ wykrycia zdarzeń powodujących naciśnięcie klawisza na początku aplikacji i użycie ich do zmodyfikowania zachowania skryptu ”, umożliwiając skryptowi otwarcie nowej karty w najbardziej terminalowym oknie po wywołaniu przytrzymując klawisz ⌘. Sztuczka.

Zwróć także uwagę na odpowiedź PCheese; jest to prawdopodobnie bardziej przydatne dla ciężkich użytkowników terminali!

physicsmichael
źródło
12

Dostępna jest zaktualizowana wersja bardzo ładnego i cienkiego Open Terminal Tutaj opublikowanego przez vgm64 i d0k . Zmiany dokonał James David Low . Opublikował nową wersję na swojej stronie . Wystarczy pobrać OpenTerminalHere.zip, rozpakować go, przenieść pakiet do folderu Library / Scripts i przeciągnąć go stamtąd na pasek narzędzi Findera.

Szczególne jest to, że zawsze otwiera nową kartę, jeśli okno Terminal.app jest już otwarte. Bardzo przydatne! Zauważyłem również, że styl przycisku aplikacji lepiej pasuje do stylu Snow Leopard Finder.app niż zrobił to cdto opublikowany przez redacted .

pklaus
źródło
To jest niesamowite! Pamiętaj, że musisz Command + Przeciągnij (nie tylko przeciągnij, jak podano w powyższym poście) na pasek narzędzi Findera. A potem masz skrót ikony, który po kliknięciu spowoduje zakończenie dowolnego folderu.
B. Nadolson,
10

Możesz także skopiować element z wyszukiwarki za pomocą polecenia C, wskoczyć do terminala (np. Za pomocą Spotlight lub QuickSilver) i wpisać „cd” i po prostu wkleić za pomocą Command-v

Henrik Hartz
źródło
4

Stworzyłem pakiet z 3 aplikacjami dla paska narzędzi wyszukiwarki. Pozostałe dwie aplikacje:

  • otwórz Textmate z bieżącym wyborem
  • otwórz GitX z bieżącym folderem

Aby uzyskać więcej informacji, zobacz tutaj: http://nslog.de/posts/71

stigi
źródło
3

Jeśli instalujesz skrypty Big Cat ( http://www.ranchero.com/bigcat/ ), możesz dodawać własne elementy menu kontekstowego (kliknięcie prawym przyciskiem). Nie wydaje mi się, żeby zawierał skrypt Apple Open Terminal Here, ale używam tego skryptu (którego nie pamiętam szczerze, jeśli sam to napisałem lub nie wziąłem za przykład kogoś innego):


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

Podobne skrypty mogą również uzyskać pełną ścieżkę do pliku po kliknięciu prawym przyciskiem myszy, co jest jeszcze bardziej przydatne, uważam.

iayork
źródło
3

To trochę więcej, niż prosisz, ale polecam Cocoatech's Path Finder każdemu, kto chciałby, aby Finder miał trochę więcej soku. Zawiera przycisk paska narzędzi, aby otworzyć okno terminala dla bieżącego katalogu lub wysuwane okienko z wierszem poleceń terminalu na dole każdego okna Findera. Plus wiele innych funkcji, bez których nie mogę teraz żyć. Bardzo dojrzałe, stabilne oprogramowanie. http://cocoatech.com/


źródło
2

Ok, zdaję sobie sprawę, że jest trochę późno ... może ta alternatywa nie była dostępna w momencie pisania postu?

W każdym razie uważam, że zainstalowanie pakietu pos przez Fink (warunek w tym przypadku, może jest coś podobnego dla tych, którzy używają MacPorts?) Jest najłatwiejszym rozwiązaniem. Otrzymasz dwa polecenia:

  1. posd - co daje bieżący katalog pierwszego okna Findera (dla którego prawdopodobnie utworzysz alias cdf = cd posd)
  2. fdc - który przełącza bieżący katalog okna Findera znajdującego się z przodu na Terminal pwd. To nieco różni się od „otwartego”. który zawsze otwiera nowe okno wyszukiwarki.

Tak, musisz przejść do okna Terminal przed napisaniem cdf, ale przypuszczam, że jest to dość tanie w porównaniu do kliknięcia przycisku na pasku narzędzi Findera. Działa również z iTerm, nie musisz pobierać osobnego przycisku paska narzędzi Findera, który otwiera okno iTerm. Jest to takie samo podejście, jak zaproponowane przez PCheese, ale nie musisz zaśmiecać swojego .bash_profile.

Jonatan Lindén
źródło
2

Jeśli podobnie jak ja wyłączysz pasek narzędzi Findera, ta usługa dodaje element do menu kontekstowego każdego folderu: http://blog.leenarts.net/2009/09/03/open-service-here/

Pozwala to również otworzyć dowolny folder widoczny w widoku drzewa Findera.

joachim
źródło
1

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ą dwie zalety w porównaniu z usługami dodanymi w wersji 10.7:

  • Korzystają z folderu na pasku tytułu, zamiast wymagać najpierw wybrania folderu.
  • Używają ponownie przedniej karty, jeśli nie jest zajęta, np. Uruchamiając polecenie, wyświetlając stronę podręcznika lub uruchamiając emacsa.
Lri
źródło
0

W skrypcie AppleScript w systemie OSX 10.6 występuje błąd. (2 otwarte okna terminali). Naprawiłem to, dodając polecenie zamknięcia po aktywacji. To zamknie pierwsze okno terminala.

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
Master Bee
źródło
2
Dlaczego chcesz zamknąć okno terminala? Czy to nie zniszczy jakiejkolwiek pracy, którą w nim wykonałeś?
Rob Kennedy