Pregunta

¿Hay algo similar a la " Abrir ventana de comandos aquí " Windows Powertoy para Mac OS? He encontrado un par de complementos a través de una búsqueda en Google, pero quería ver qué funciona mejor para los desarrolladores.

¿Fue útil?

Solución

A partir de Mac OS X Lion 10.7, Terminal incluye exactamente esta funcionalidad como un Servicio. Como con la mayoría de los Servicios, estos están deshabilitados de manera predeterminada, por lo que deberá habilitarlo para que aparezca en el menú Servicios.

  

Preferencias del sistema > Teclado > Accesos directos > Servicios

Habilitar Nueva terminal en la carpeta . También hay Nueva pestaña de terminal en la carpeta , que creará una pestaña en la ventana de Terminal frontal (si hay alguna, de lo contrario, creará una nueva ventana). Estos servicios funcionan en todas las aplicaciones, no solo en el Finder, y operan en carpetas, así como en las rutas de acceso absolutas seleccionadas en el texto.

Incluso puedes asignarles teclas de comando.

Los servicios aparecen en el submenú Servicios de cada menú de aplicación, y dentro del menú contextual (Control-Clic o clic derecho en una carpeta o ruta).

El servicio Nueva terminal en la carpeta se activará cuando seleccione una carpeta en el Finder. Simplemente no puede tener la carpeta abierta y ejecutar el servicio " en su lugar " ;. Regrese a la carpeta principal, seleccione la carpeta relevante y luego active el servicio a través del menú Servicios o el menú contextual.

Además, Lion Terminal abrirá una nueva ventana de terminal si arrastra una carpeta (o ruta de acceso) al icono de la aplicación Terminal, y también puede arrastrar a la barra de pestañas de una ventana existente para crear una nueva pestaña.

Finalmente, si arrastra una carpeta o nombre de ruta a una pestaña (en la barra de pestañas) y el proceso en primer plano es el shell, se ejecutará automáticamente un " cd " mando. (Arrastrar en la vista de terminal dentro de la pestaña simplemente inserta la ruta de acceso solo, como en versiones anteriores de Terminal).

También puede hacer esto desde la línea de comandos o un script de shell:

open -a Terminal /path/to/folder

Este es el equivalente de la línea de comandos de arrastrar una carpeta / ruta de acceso al icono de la aplicación Terminal.

En una nota relacionada, Lion Terminal también tiene nuevos Servicios para buscar páginas de manual: Abrir página de manual en Terminal muestra el tema de la página de manual seleccionada en una nueva ventana de terminal y Buscar hombre Las páginas en la Terminal realizan " a propósito " en el texto seleccionado. El primero también entiende las referencias de la página de manual (" abrir (2) "), los argumentos de la línea de comando de la página de manual (" 2 abrir ") y las URL de la página de manual (" x-man-page: // 2 / open ") .

Otros consejos

Esto:

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

Es una aplicación pequeña que arrastra a la barra de herramientas del Finder, el ícono encaja muy bien. Funciona con Terminal, xterm (bajo X11), iterm.

Una aplicación que he encontrado indispensable como alternativa es DTerm , que en realidad abre un Mini terminal justo en su aplicación. Además, funciona con casi todo lo que hay por ahí: Finder, XCode, PhotoShop, etc.

Aclaración (gracias @ vgm64): si ya estás en Terminal, esto te permite cambiar rápidamente a la ventana superior del Finder sin salir de Terminal. De esta manera, puedes evitar usar el mouse.

He agregado lo siguiente a mi .bash_profile para poder escribir cdff en la Terminal en cualquier 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 $@`"; };

Esto es de esta sugerencia de terminal de macosxhints.com .

Echa un vistazo a Abrir Terminal Aquí . Puede ser el más similar a " Abrir ventana de comandos aquí " Utilicé > cdto y esto es muy similar, pero parece ser un poco mejor para tratar con Spaces ... pero no es perfecto.

Lo que tiene que es muy bueno es la capacidad de " detectar eventos clave al inicio de la aplicación y usarlos para modificar el comportamiento del script " permitiendo que la secuencia de comandos abra una nueva pestaña en la ventana frontal del terminal cuando se invoca al mantener presionado & # 8984; llave. Buen truco.

También note la respuesta de PCheese; ¡Probablemente sea más útil para usuarios de terminales pesados!

Hay una versión actualizada del Abrir Terminal Aquí muy agradable y delgado publicado por vgm64 y d0k . El cambio fue realizado por james david low . Publicó la nueva versión en su sitio . Simplemente descargue OpenTerminalHere.zip, extráigalo, mueva el paquete a su carpeta Biblioteca / Scripts y arrástrelo desde allí a la barra de herramientas del Finder.

Lo que tiene de especial es que siempre abre una nueva pestaña si la ventana Terminal.app ya está abierta. ¡Muy útil! También noté que el estilo del botón de la aplicación se ajusta mejor al estilo Snow Leopard Finder.app que cdto publicado por redactado .

También, puede copiar un elemento desde el buscador usando el comando C, saltar a la Terminal (por ejemplo, usando Spotlight o QuickSilver) escriba 'cd' y simplemente pegar con el comando-v

Creé un paquete con 3 aplicaciones para la barra de herramientas del buscador. Las otras dos aplicaciones hacen:

  • abrir Textmate con la selección actual
  • abre GitX con la carpeta actual

Para más información vea aquí: http://nslog.de/posts/71

Si instala Big Cat Scripts ( http://www.ranchero.com/bigcat/) puede agregar sus propios elementos del menú contextual (clic derecho). No creo que venga con un script Apple Open Terminal Here, pero uso este script (que honestamente no recuerdo si me escribí yo mismo o si lo he eliminado del ejemplo de otra persona):


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

Scripts similares también pueden brindarte la ruta completa a un archivo con un clic derecho, que es aún más útil, según encuentro.

Es un poco más de lo que estás pidiendo, pero recomiendo el Buscador de rutas de Cocoatech para cualquier persona que desee que el Buscador haya bebido un poco más. Incluye un botón de la barra de herramientas para abrir una ventana de Terminal para el directorio actual, o un panel retráctil con una línea de comando de Terminal en la parte inferior de cada ventana del Finder. Además de muchas otras características con las que ahora no puedo vivir. Software muy maduro, estable. http://cocoatech.com/

Ok, me doy cuenta de que esto es un poco tarde ... ¿quizás esta alternativa no estaba disponible en el momento de escribir el mensaje?

De todos modos, he encontrado que instalar el paquete pos a través de Fink (un requisito previo en este caso, tal vez haya algo similar para aquellos que usan MacPorts?) para que sea la solución más fácil. Obtienes dos comandos:

  1. posd - que proporciona el directorio actual de la ventana del buscador frontal (para la cual presumiblemente creas un alias cdf = cd posd)
  2. fdc - que cambia el directorio actual de la ventana del buscador frontal al terminal pwd. Esto es ligeramente diferente de 'abierto'. que siempre abre una nueva ventana del buscador.

Sí, tienes que cambiar a la ventana de la Terminal antes de escribir el cdf, pero supongo que es bastante barato en comparación con hacer clic en un botón en la barra de herramientas del Finder. Y también funciona con iTerm, no tiene que descargar un botón separado de la barra de herramientas del Finder que abre una ventana de iTerm. Este es el mismo enfoque propuesto por PCheese, pero no tiene que desordenar su .bash_profile.

Si, como yo, desactivas la barra de herramientas del Finder, este Servicio agrega un elemento al menú contextual de cada carpeta: http://blog.leenarts.net/2009/09/03/open-service-here/

Esto también te permite abrir cualquier carpeta que veas en la vista de árbol del Finder.

Principalmente utilizo esta función:

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

También puede asignar un acceso directo a un script como los que se muestran a continuación.

Reutilice una pestaña existente o cree una nueva ventana (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

Reutilice una pestaña existente o cree una nueva pestaña (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

Siempre crea una nueva pestaña (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

Los dos primeros scripts tienen dos ventajas en comparación con los servicios agregados en 10.7:

  • Utilizan la carpeta en la barra de título en lugar de pedirle que seleccione una carpeta primero.
  • Reutilizan la pestaña frontal si no está ocupada, por ejemplo. ejecutar un comando, mostrar una página de manual o ejecutar emacs.

Hay un error en el AppleScript en OSX 10.6. (2 ventanas de terminal abiertas). Arreglé esto agregando el comando de cierre después de activar. Esto cierra la primera ventana de Terminal.

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top