Esiste qualcosa di simile a "Apri finestra di comando qui" di 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.
Esiste qualcosa di simile a "Apri finestra di comando qui" di 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.
Risposte:
A partire da Mac OS X Lion 10.7, Terminal include esattamente questa funzionalità come servizio. Come con 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 una nuova scheda Terminale nella cartella , che creerà una scheda nella finestra Terminale più in alto (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 si seleziona una cartella nel Finder. Non è possibile semplicemente aprire la cartella ed eseguire il servizio "sul posto". 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 comando "cd". (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 shell:
open -a Terminal /path/to/folder
Questo è l'equivalente da riga di comando del trascinamento di una cartella / percorso sull'icona dell'applicazione Terminale.
Su una nota correlata, Lion Terminal ha anche nuovi servizi per la ricerca di pagine man: Apri la pagina man in Terminal visualizza l'argomento della pagina man selezionata in una nuova finestra del terminale e Cerca pagine man in Terminal esegue "apropos" sul testo selezionato. Il primo comprende anche i riferimenti alle pagine man ("open (2)"), gli argomenti della riga di comando man page ("2 open") e gli URL delle pagine man ("x-man-page: // 2 / open").
Questo:
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 proprio nella tua applicazione. Inoltre, funziona praticamente con qualsiasi cosa: Finder, XCode, PhotoShop, ecc.
Chiarimento (grazie @ vgm64): se sei già nel Terminale, questo ti consente di passare rapidamente alla finestra del Finder più in alto senza uscire dal Terminale. In questo modo, puoi evitare di usare il mouse.
Ho aggiunto quanto segue al mio in .bash_profile
modo da poter digitare cdff
Terminal 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 terminale macosxhints.com .
pwd
, ma alla cd
directory in cui il Finder è aperto.
Dai un'occhiata a Open Terminal Here . Potrebbe essere il più simile a "Apri finestra di comando qui". Ho usato >cdto
e questo è molto simile, ma sembra essere un po 'meglio nel trattare con Spaces ... ma non perfetto.
Ciò che ha di bello è la capacità di " rilevare eventi key-down all'avvio 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 molto bello e sottile Qui pubblicato da vgm64 e d0k . Il cambiamento è stato fatto da James David Low . Ha pubblicato la nuova versione sul suo sito . Basta scaricare OpenTerminalHere.zip, estrarlo, spostare il pacchetto nella cartella Libreria / Script e trascinarlo da lì nella 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 di Snow Leopard Finder.app di CDTO inviato da redatto fatto.
Inoltre, puoi copiare un elemento dal finder usando command-C, saltare nel Terminale (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:
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 del menu contestuale (tasto destro). Non credo 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 del mouse, 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?
Ad ogni modo, ho trovato che l'installazione del pacchetto pos tramite Fink (un prerequisito in questo caso, forse esiste qualcosa di simile per coloro che usano MacPorts?) Sia la soluzione più semplice. Ottieni due comandi:
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)')"
}
È inoltre possibile assegnare un collegamento a uno script come quelli di seguito.
Riutilizzare una scheda esistente o creare 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
Riutilizzare una scheda esistente o creare una nuova scheda (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:
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 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