Cambie la acción predeterminada para abrir archivos ejecutables en el editor en lugar de Terminal

Al hacer doble clic en un archivo ejecutable (sin extensión de archivo) en Finder, se abre en Terminal de forma predeterminada. Puedo cambiar eso a cualquier otra aplicación para este único archivo, pero no puedo cambiar el valor predeterminado para todos los archivos.

¿Hay alguna forma de hacer eso?
Nunca quiero abrir archivos ejecutables en Terminal, y me falta esa funcionalidad desde NeXTStep, que tenía un valor predeterminado oculto para eso.

¿Qué versión del sistema operativo estás ejecutando? Lamentablemente, la respuesta será mucho más fácil si eres anterior a Snow Leopard.
Snow Leopard :) ¿Por qué, cómo funcionaría en Leopard?
Antes de SL, Finder usaba códigos de creador como parte de su política para determinar qué aplicación estaba vinculada a un tipo de archivo en particular, por lo que vincular archivos sin extensión a una aplicación en particular sería más fácil si compartían un código de creador. Comenzando con SL, Finder ignora los códigos del creador y busca principalmente la extensión del archivo, lo que obviamente es un problema para los archivos que no tienen extensión. Consulte daringfireball.net/2009/10/congrtlns-osx para obtener más información. :-(

Respuestas (2)

Ejecute plutil -convert xml1 ~/Library/Preferences/com.apple.launchservices.plisty agregue una entrada como esta en LSHandlers:

<dict>
    <key>LSHandlerContentType</key>
    <string>public.unix-executable</string>
    <key>LSHandlerRoleAll</key>
    <string>com.macromates.textmate</string>
</dict>

También puede cambiar la aplicación predeterminada para archivos normales sin extensión:

<dict>
    <key>LSHandlerContentType</key>
    <string>public.plain-text</string>
    <key>LSHandlerRoleAll</key>
    <string>com.macromates.textmate</string>
</dict>

Puede aplicar los cambios reiniciando. Simplemente cerrar sesión y volver a iniciarla no parece funcionar. También podría reconstruir la base de datos de Launch Services, pero tiene el efecto secundario de que las advertencias sobre la apertura de aplicaciones por primera vez se muestran nuevamente.

Otra opción es agregar algo como esto a un archivo de configuración duti :

com.macromates.textmate public.unix-executable all
com.macromates.textmate public.plain-text all

Para que esta pregunta sea más fácil de buscar, aquí está el mensaje de error que muestra el Finder cuando intenta cambiar la aplicación predeterminada para los scripts ejecutables:

No se puede completar la operación.

Ocurrió un error inesperado (código de error -50).

¡Eso funcionó bien! Tuve que cerrar sesión y volver a iniciar sesión para que Finder recogiera el cambio.
Uso "duti" para este propósito exacto (según lo propuesto por Lauri) y funciona muy bien. Tenga en cuenta que puede omitir el archivo de configuración y configurar el visor con un solo comando:duti -s com.macromates.textmate public.unix-executable all

Lo que debe hacer es ir al archivo, hacer clic en Control y seleccionar "Obtener información" . En la ventana de información, hay una sección llamada Abrir con , encontrarás un cuadro desplegable y un botón que dice Change All. Ese botón debería cambiar la aplicación predeterminada de todos los documentos a lo que elija.

Abrir con...

Si no tiene los permisos para modificar el archivo, OSX le pedirá automáticamente que lo cambie en todos los archivos del mismo tipo. Estoy en Snow Leopard 10.6.8 y funciona: lo probé con archivos bash, shell y sh.

¡Espero eso ayude!

Lo siento, olvidé mencionar que tengo archivos sin extensión de archivo. Su respuesta funciona para archivos .sh, por ejemplo, pero tengo varios otros, como 'git-setup-hooks', por ejemplo.