Open terminal hier in Mac OS-zoeker

Is er iets dat lijkt op het “Open Command Window Here” Windows Powertoy voor Mac OS? Ik heb een paar plug-ins gevonden via een Google-zoekopdracht, maar wilde zien wat het beste werkt voor ontwikkelaars die er zijn.


Antwoord 1, autoriteit 100%

Vanaf Mac OS X Lion 10.7 bevat Terminal precies deze functionaliteit als een service. Zoals bij de meeste Services, zijn deze standaard uitgeschakeld, dus je moet dit inschakelen om het in het Services-menu weer te geven.

Systeemvoorkeuren > Toetsenbord > Sneltoetsen > Diensten

Schakel Nieuwe terminal in mapin. Er is ook Nieuw Terminal-tabblad bij map, waarmee een tabblad wordt gemaakt in het voorste Terminal-venster (indien aanwezig, anders wordt er een nieuw venster gemaakt). Deze services werken in alle toepassingen, niet alleen in Finder, en ze werken zowel op mappen als op absolute padnamen die in tekst zijn geselecteerd.

Je kunt er zelfs opdrachttoetsen aan toewijzen.

Services verschijnen in het submenu Services van elk toepassingsmenu en in het contextmenu (Control-Click of Right-Click op een map of padnaam).

De service Nieuwe terminal bij mapwordt actief wanneer u een map selecteertin Finder. U kunt de map niet zomaar openen en de service “op zijn plaats” uitvoeren. Ga terug naar de bovenliggende map, selecteer de relevante map en activeer de service via het menu Services of het contextmenu.

Bovendien zal Lion Terminal een nieuw terminalvenster openen als u een map (of padnaam) naar het Terminal-toepassingspictogram sleept, en u kunt ook naar de tabbalk van een bestaand venster slepen om een ​​nieuw tabblad te maken.

p>

Ten slotte, als je een map of padnaam naar een tabblad sleept (in de tabbalk) en het proces op de voorgrond is de shell, zal het automatisch een “cd”-opdracht uitvoeren. (Als u op het tabblad naar de terminalweergave sleept, voegt u alleen de padnaam in, zoals in oudere versies van Terminal.)

U kunt dit ook doen vanaf de opdrachtregel of een shellscript:

open -a Terminal /path/to/folder

Dit is het commandoregelequivalent van het slepen van een map/padnaam naar het Terminal-toepassingspictogram.

Over een verwante opmerking, Lion Terminal heeft ook nieuwe Services voor het opzoeken van man-pagina’s: Open man-pagina in Terminalgeeft het geselecteerde man-pagina-onderwerp weer in een nieuw terminalvenster, en Zoek man Pages in Terminalvoert “apropos” uit op de geselecteerde tekst. De eerste begrijpt ook verwijzingen naar manpagina’s (“open(2)”), manpagina-opdrachtregelargumenten (“2 open”) en manpagina-URL’s (“x-man-page://2/open”).


Antwoord 2, autoriteit 17%

Dit:

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

Het is een kleine app die je naar de Finder-werkbalk sleept, het pictogram past er heel mooi in. Het werkt met Terminal, xterm (onder X11), iterm.


Antwoord 3, autoriteit 6%

Een toepassing die ik onmisbaar heb gevonden als alternatief is DTerm, die in feite een miniterminal direct in uw applicatie. Bovendien werkt het met zowat alles wat er is – Finder, XCode, PhotoShop, enz.


Antwoord 4, autoriteit 4%

Verduidelijking (bedankt @vgm64): als je al in Terminal bent, kun je snel naar het bovenste Finder-venster gaan zonder Terminal te verlaten. Op deze manier vermijd je het gebruik van de muis.

Ik heb het volgende toegevoegd aan mijn .bash_profilezodat ik op elk moment cdffin Terminal kan typen.

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

Dit is van deze macosxhints.com Terminal-hint.


Antwoord 5, autoriteit 2%

Bekijk Open terminal hier. Het lijkt misschien het meest op “Open Command Window Here”. Ik gebruikte >cdtoen dit lijkt erg op elkaar, maar dit lijkt iets beter te zijn in het omgaan met Spaces… maar niet perfect.

Wat het erg fijn heeft, is de mogelijkheid om “key-down-gebeurtenissen te detecteren aan het begin van de applicatie en deze te gebruiken om het gedrag van het script aan te passen“, waardoor het script een nieuw tabblad in het voorste terminalvenster wanneer aangeroepen door de ⌘-toets ingedrukt te houden. Leuke truc.

Let ook op het antwoord van PCheese; het is waarschijnlijk nuttiger voor zware terminalgebruikers!


Antwoord 6

Er is een bijgewerkte versie van de zeer mooie en slanke Open Terminal Heregepost door vgm64en d0k. De wijziging is aangebracht door James David Low. Hij publiceerde de nieuwe versie op zijn site. Download gewoon OpenTerminalHere.zip, pak het uit, verplaats de bundel naar uw Bibliotheek/Scripts-map en sleep het van daaruit naar uw Finder-werkbalk.

Het bijzondere is dat het altijd een nieuw tabblad opentals er al een Terminal.app-venster is geopend. Erg nuttig! Ik merkte ook op dat de stijl van de knop van de applicatie beter past bij de Snow Leopard Finder.app-stijl dan cdto gepost door redacteddeed.


Antwoord 7

Je kunt ook een item uit de vinder kopiëren met commando-C, naar de Terminal springen (bijvoorbeeld met Spotlight of QuickSilver) typ ‘cd’ en plak het gewoon met commando-v


Antwoord 8

Ik heb een bundel gemaakt met 3 apps voor de Finder-werkbalk.
De andere twee apps doen:

  • Open Textmate met de huidige selectie
  • open GitX met de huidige map

Voor meer informatie zie hier:
http://nslog.de/posts/71


Antwoord 9

Als u Big Cat-scripts installeert (http://www.ranchero.com/bigcat/) kunt u uw eigen contextuele menu-items (rechtsklik) toevoegen. Ik denk niet dat het wordt geleverd met een Open Terminal Here-applescript, maar ik gebruik dit script (wat ik me eerlijk gezegd niet kan herinneren als ik het zelf heb geschreven of uit het voorbeeld van iemand anders heb gehaald):


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

Vergelijkbare scripts kunnen je ook het volledige pad naar een bestand geven door met de rechtermuisknop te klikken, wat zelfs nog handiger is, vind ik.


Antwoord 10

Het is iets meer dan je vraagt, maar ik raad Cocoatech’s Path Finder aan voor iedereen die zou willen dat de Finder wat meer pit had. Het bevat een werkbalkknop om een ​​Terminal-venster voor de huidige map te openen, of een intrekbaar paneel met een Terminal-opdrachtregel onder aan elk Finder-venster. Plus vele andere functies waar ik nu niet meer zonder kan. Zeer volwassen, stabiele software.
http://cocotech.com/


Antwoord 11

Ok, ik realiseer me dat dit een beetje laat is… misschien was dit alternatief niet beschikbaar op het moment van schrijven van de post?

Hoe dan ook, ik heb gemerkt dat het installeren van het pos-pakket via Fink (een vereiste in dit geval, misschien is er iets soortgelijks voor degenen die MacPorts gebruiken?) de gemakkelijkste oplossing is. Je krijgt twee commando’s:

  1. posd – die de huidige map van het voorste Finder-venster geeft (waarvoor je vermoedelijk een alias cdf=cd posd maakt)
  2. fdc – die de huidige map van het voorste Finder-venster overschakelt naar de Terminal pwd. Dit is iets anders dan ‘openen’. die altijd een nieuw vindervenster opent.

Ja, je moet overschakelen naar het Terminal-venster voordat je cdf schrijft, maar ik veronderstel dat dat vrij goedkoop is in vergelijking met het klikken op een knop in de Finder-werkbalk. En het werkt ook met iTerm, je hoeft geen aparte Finder-werkbalkknop te downloaden die een iTerm-venster opent. Dit is dezelfde aanpak als voorgesteld door PCheese, maar je hoeft je .bash_profile niet vol te proppen.


Antwoord 12

Als je net als ik de Finder-werkbalk uitschakelt, voegt deze Service een item toe aan het contextuele menu van elke map: http://blog.leenarts.net/2009/09/03/open-service-here/

Hiermee kunt u ook elke map openen die u in de boomstructuur van de Finder ziet.


Antwoord 13

Ik gebruik meestal deze functie:

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

U kunt ook een snelkoppeling toewijzen aan een script zoals hieronder.

Hergebruik een bestaand tabblad of maak een nieuw venster (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

Hergebruik een bestaand tabblad of maak een nieuw tabblad (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

Maak altijd een nieuw tabblad (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

De eerste twee scripts hebben twee voordelen vergeleken met de services die zijn toegevoegd in 10.7:

  • Ze gebruiken de map op de titelbalk in plaats van dat je eerst een map moet selecteren.
  • Ze hergebruiken het voorste tabblad als het niet bezet is, b.v. een commando uitvoeren, een man-pagina weergeven of emacs uitvoeren.

Antwoord 14

Er zit een fout in het AppleScript op OSX 10.6. (2 terminalvensters open).
Ik heb dit opgelost door het commando close toe te voegen na het activeren. Hiermee wordt het eerste Terminal-venster gesloten.

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

Other episodes