Domanda

Esiste qualcosa di simile a " Apri finestra di comando qui " Windows Powertoy per Mac OS? Ho trovato un paio di plugin tramite una ricerca su Google, ma volevo vedere cosa funziona meglio per gli sviluppatori là fuori.

È stato utile?

Soluzione

A partire da Mac OS X Lion 10.7, Terminal include esattamente questa funzionalità come servizio. Come per la maggior parte dei servizi, questi sono disabilitati per impostazione predefinita, quindi è necessario abilitarlo per farlo apparire nel menu Servizi.

  

Preferenze di Sistema > Tastiera > Scorciatoie > Servizi

Abilita Nuovo terminale nella cartella . C'è anche Nuova scheda Terminale nella cartella , che creerà una scheda nella finestra Terminale in primo piano (se presente, altrimenti creerà una nuova finestra). Questi servizi funzionano in tutte le applicazioni, non solo nel Finder, e operano su cartelle e su percorsi assoluti selezionati nel testo.

Puoi anche assegnare loro i tasti di comando.

I servizi vengono visualizzati nel sottomenu Servizi di ciascun menu dell'applicazione e nel menu contestuale (Control-Click o Right-Click su una cartella o percorso).

Il servizio Nuovo terminale nella cartella diventerà attivo quando selezioni una cartella nel Finder. Non puoi semplicemente aprire la cartella ed eseguire il servizio " in atto " ;. Torna alla cartella principale, seleziona la cartella pertinente, quindi attiva il servizio tramite il menu Servizi o il menu contestuale.

Inoltre, Lion Terminal aprirà una nuova finestra del terminale se si trascina una cartella (o nome percorso) sull'icona dell'applicazione Terminale e si può anche trascinare sulla barra delle schede di una finestra esistente per creare una nuova scheda.

Infine, se trascini una cartella o un percorso su una scheda (nella barra delle schede) e il processo in primo piano è la shell, eseguirà automaticamente un "cd " comando. (Il trascinamento nella vista terminale all'interno della scheda non fa altro che inserire il percorso da solo, come nelle versioni precedenti di Terminale.)

Puoi anche farlo dalla riga di comando o da uno script di shell:

open -a Terminal /path/to/folder

Questo è l'equivalente della riga di comando del trascinamento di una cartella / percorso sull'icona dell'applicazione Terminale.

In una nota correlata, Lion Terminal ha anche nuovi servizi per la ricerca di pagine man: Apri la pagina man nel Terminale visualizza l'argomento della pagina man selezionata in una nuova finestra del terminale e Cerca man Pages in Terminal esegue " apropos " sul testo selezionato. Il primo comprende anche i riferimenti alla pagina man ("open (2)", gli argomenti della riga di comando della pagina man ("quot 2 open") e gli URL della pagina man ("x-man-page: // 2 / open") .

Altri suggerimenti

Questa:

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

È una piccola app che trascini nella barra degli strumenti del Finder, l'icona si adatta molto bene. Funziona con Terminal, xterm (sotto X11), iterm.

Un'applicazione che ho trovato indispensabile in alternativa è DTerm , che in realtà apre un mini terminale direttamente nella tua applicazione. Inoltre funziona praticamente con tutto ciò che c'è là fuori: Finder, XCode, PhotoShop, ecc.

Chiarimento (grazie @ vgm64): se sei già in Terminale, questo ti consente di passare rapidamente alla finestra del Finder più in alto senza uscire da Terminale. In questo modo, puoi evitare di usare il mouse.

Ho aggiunto quanto segue al mio .bash_profile in modo da poter digitare cdff in Terminale in qualsiasi momento.

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

Questo è da questo suggerimento sul terminale macosxhints.com .

Scopri Apri terminale qui . Potrebbe essere il più simile a " Apri finestra di comando qui. & Quot; Ho usato > cdto e questo è molto simile ma questo sembra essere un po 'meglio nel trattare con Spaces ... ma non perfetto.

Quello che ha di bello è la capacità di " rilevare eventi di keydown all'inizio dell'applicazione e di usarli per modificare il comportamento dello script " consentendo allo script di aprire una nuova scheda nella finestra più terminale quando viene richiamato tenendo premuto il tasto ?. Trucco pulito.

Nota anche la risposta di PCheese; è probabilmente più utile per gli utenti di terminali pesanti!

Esiste una versione aggiornata del Terminale aperto qui molto bello e sottile pubblicato da vgm64 e d0k . La modifica è stata apportata da james david low . Ha pubblicato la nuova versione su il suo sito . Basta scaricare OpenTerminalHere.zip, estrarlo, spostare il pacchetto nella cartella Libreria / Script e trascinarlo da lì sulla barra degli strumenti del Finder.

La cosa speciale è che apre sempre una nuova scheda se una finestra Terminal.app è già aperta. Molto utile! Ho anche notato che lo stile del pulsante dell'applicazione si adatta meglio allo stile Snow Leopard Finder.app rispetto a cdto pubblicato da redatto .

Inoltre, puoi copiare un elemento dal finder usando command-C, saltare nel Terminale (ad es. usando Spotlight o QuickSilver) digitare 'cd' e semplicemente incollare con command-v

Ho creato un pacchetto con 3 app per la barra degli strumenti del Finder. Le altre due app fanno:

  • apri Textmate con la selezione corrente
  • apri GitX con la cartella corrente

Per ulteriori informazioni consultare qui: http://nslog.de/posts/71

Se installi Big Cat Scripts ( http://www.ranchero.com/bigcat/) puoi aggiungere le tue voci di menu contestuale (tasto destro). Non penso che venga fornito con un terminale Open Here Here, ma utilizzo questo script (che non ricordo onestamente se mi sono scritto o estratto dall'esempio di qualcun altro):


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

Script simili possono anche darti il ??percorso completo di un file con il tasto destro, che è ancora più utile, trovo.

È un po 'più di quello che stai chiedendo, ma raccomando il Path Finder di Cocoatech a chiunque desideri che il Finder abbia un po' più di succo. Include un pulsante della barra degli strumenti per aprire una finestra Terminale per la directory corrente o un riquadro a scomparsa con una riga di comando Terminale nella parte inferiore di ciascuna finestra del Finder. Inoltre molte altre funzionalità di cui non posso vivere senza. Software molto maturo e stabile. http://cocoatech.com/

Ok, mi rendo conto che è un po 'tardi ... forse questa alternativa non era disponibile al momento della stesura del post?

Comunque, ho trovato che l'installazione del pacchetto pos tramite Fink (un prerequisito in questo caso, forse c'è qualcosa di simile per coloro che usano MacPorts?) essere la soluzione più semplice. Ottieni due comandi:

  1. posd - che fornisce la directory corrente della finestra del Finder in primo piano (per la quale presumibilmente crei un alias cdf = cd posd)
  2. fdc - che cambia la directory corrente della finestra del Finder in primo piano nel Terminale pwd. Questo è leggermente diverso da "aperto". che apre sempre una nuova finestra di ricerca.

Sì, devi passare alla finestra Terminale prima di scrivere in cdf, ma suppongo che sia abbastanza economico rispetto a fare clic su un pulsante nella barra degli strumenti del Finder. Funziona anche con iTerm, non è necessario scaricare un pulsante separato sulla barra degli strumenti del Finder che apre una finestra iTerm. Questo è lo stesso approccio proposto da PCheese, ma non devi ingombrare il tuo .bash_profile.

Se come me disattivi la barra degli strumenti del Finder, questo servizio aggiunge un elemento al menu contestuale di ogni cartella: http://blog.leenarts.net/2009/09/03/open-service-here/

Ciò consente anche di aprire qualsiasi cartella visualizzata nella vista ad albero del Finder.

Uso principalmente questa funzione:

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

Puoi anche assegnare una scorciatoia a uno script come quelli qui sotto.

Riutilizza una scheda esistente o crea una nuova finestra (Terminale):

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

Riutilizza una scheda esistente o creane una nuova (Terminale):

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

Crea sempre una nuova scheda (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

I primi due script hanno due vantaggi rispetto ai servizi aggiunti in 10.7:

  • Usano la cartella sulla barra del titolo invece di richiedere prima di selezionare una cartella.
  • Riutilizzano la scheda in primo piano se non è occupata, ad es. eseguendo un comando, mostrando una pagina man o eseguendo emacs.

C'è un bug in AppleScript su OSX 10.6. (2 finestre dei terminali aperte). Ho risolto il problema aggiungendo il comando di chiusura dopo l'attivazione. Questo chiude la prima finestra del Terminale.

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top