OS X Snow Leopard: elemento del automatizador Finder para crear un nuevo archivo de texto

4

¿Cómo puedo crear un elemento de autómata Finder que aparece en 'Servicios' para crear un nuevo archivo de texto dentro de una carpeta de archivos? Yo uso TextMate, así que mejor si la solución es independiente del editor (en lugar de usar TextEdit).

Ricardo Sánchez-Sáez
fuente
Una operación tan útil en Windows y en MacOS está completamente ausente
davidfrancis
No es un servicio de automatización, sino un nuevo botón en la barra de herramientas: vea la respuesta de ling aquí: apple.stackexchange.com/questions/84309/…
davidfrancis

Respuestas:

1

La forma en que lo hago: creo un archivo de texto ficticio y lo almaceno en alguna carpeta en mis documentos (esto se usa como plantilla para cada vez que se ejecuta el servicio). Luego creo un flujo de trabajo (servicio) de la siguiente manera:

Todo lo que tiene que hacer ahora es hacer clic con el botón derecho en la carpeta en la que desea colocar el nuevo archivo y seleccionar el servicio creado al guardar este flujo de trabajo.

Para abrir el archivo recién creado, puede agregar una acción de "abrir elementos del Finder" en la que obviamente seleccionaría TextMate en lugar de TextEdit. Para que sea independiente del editor, puede decirle que se abra con su aplicación predeterminada, y lo hará.

Si pedir el nombre en tiempo de ejecución es muy importante para usted, puede agregar una acción de obtención de texto y asignarla a una segunda variable, luego agregar una acción de cambio de nombre después de la acción de copiar y decir reemplazar texto, reemplazando el nombre de su archivo de plantilla con la variable de texto De forma predeterminada, no puede usar variables de texto de la manera que describí, pero la siguiente publicación proporciona una solución alternativa para hacerlo. Sé que funciona con 10.6, y puede o no funcionar con una versión anterior de OSX.

ver aquí para instrucciones

finiteloop
fuente
Eso suena como la respuesta correcta para mí.
Darren Newton
Bonita e informativa respuesta! Necesitaría una última aclaración: ¿hay alguna forma de crear una acción de Automator que afecte la carpeta que está viendo actualmente en Finder (en lugar de la carpeta que selecciona haciendo clic derecho sobre ella)?
Ricardo Sanchez-Saez
No que yo sepa. Ese es el único inconveniente. He estado tratando de encontrar algún tipo de alternativa, así que no necesito subir un directorio. Sin embargo, uso la vista de columna, por lo que no es tan importante para mí. Te haré saber si pienso en algo. Mantenme informado. También uso este mismo método para crear nuevas clases de C ++ en ciertos directorios. Funciona de maravilla.
finiteloop
1
segfault, parece que el enlace de la imagen de su respuesta ya no funciona. ¿Podrías echarle un vistazo a eso? Salud.
Ricardo Sanchez-Saez
1

Esto debería funcionar:

do shell script "echo '[text for the text file]' > [path to folder & file].txt"

Si solo desea un archivo de texto vacío, intente esto:

do shell script " > [path to folder and file].txt"

Editar: leí tu pregunta nuevamente ... este es un AppleScript. Tengo más experiencia con Terminal simple que con Automator y AppleScript, pero supongo que puede llamar a AppleScript desde Automator.

trolle3000
fuente
Prefiero tener estas acciones para abrir TextMate (o TextEdit, o cualquier otro editor de texto) con un archivo vacío. Además, me gustaría el paso sobre cómo agregar esto en Automator para que se muestre en el menú Finder incluido en la respuesta.
Ricardo Sanchez-Saez
1

Está bien, hice trampa pero aún obtienes un servicio de Automator. Necesitará tener la configuración TextMate para usar el shell (generalmente lo hace cuando lo instala por primera vez, para que pueda usarlo matedesde la CLI).

Abre Automator y crea un nuevo servicio

Desde Utilidades, arrastre sobre la ventana Ejecutar script de Shell .

Suelte el siguiente script:

cd ~/Desktop;
touch newfile.txt;
mate newfile.txt

Lo que esto básicamente hace es crear un archivo en su escritorio llamado newfile.txt y luego abrirlo en TextMate.

texto alternativo

Actualización solicitada:

  1. Abra Automater y cree un nuevo servicio.
  2. Arrastre sobre la ventana 'Ejecutar Applescript'
  3. Pegue el siguiente Applescript escrito por Olivier Fabré :

    on run {input, parameters}
    
        tell application "Finder"
            set currentPath to insertion location as text
            set filePath to POSIX path of currentPath & input
        end tell
    
        tell application "TextMate"
            activate
            open filePath
        end tell
    
        return input
    end run
    
  4. Guardar el servicio

    Automator

Qué hace esto:

Si selecciona texto en una aplicación, se abrirá un archivo TextMate en blanco con el nombre del texto seleccionado, en la ventana del Finder.

Lo que probablemente intentas hacer:

Otras personas han escrito tutoriales sobre la creación de un botón TextMate que se encuentra en la barra de herramientas del Finder que abrirá un documento en blanco en esa ventana, o abrirá un archivo seleccionado en TextMate. Es lo que suena como lo que quieres hacer y no requiere Automator.

Darren Newton
fuente
Esto es útil, pero tengo varias preocupaciones aquí. a) No es necesario tocar, ya que mate crea un archivo si no se encuentra. b) ¿Cómo puedo parametrizar el nombre del nombre del archivo? Otro problema es que quiero que esta tarea del automatizador funcione automáticamente en el buscador de carpetas que está mostrando, no en la carpeta seleccionada.
Ricardo Sanchez-Saez
entonces es posible que desee pasar algún tiempo aquí snippets.dzone.com/posts/show/1037
Darren Newton
Buen enlace, aunque un poco complicado. Proporcione un proceso paso a paso más simple para crear el servicio que necesito (el servicio solicita un nombre de archivo de texto, lo crea en la carpeta del buscador actual -no la carpeta seleccionada- y lo abre en TextMate) y obtiene el correcto- responder reputación. ;-)
Ricardo Sanchez-Saez
Su actualización es muy explicativa, gracias. Es una pena que no pueda marcar dos respuestas como correctas. :-(
Ricardo Sanchez-Saez
Gracias por una buena explicación Sin embargo, quería que se preguntara el nombre del nombre del archivo en lugar de tener que seleccionar un texto en el Finder. Es una pena que dos respuestas diferentes se puedan marcar como correctas. ¡Gracias por tus esfuerzos!
Ricardo Sanchez-Saez
0
try
    tell application "Finder"
        set ans to text returned of (display dialog "" default answer "")

        set opn to 0
        set fn to "new.txt"
        if ans is "," then
            set opn to 1
        else if ans is "/" then
            set opn to 2
        else if character -1 of ans is "," then
            set fn to text 1 thru -2 of ans
            set opn to 1
        else if character -1 of ans is "/" then
            set fn to text 1 thru -2 of ans
            set opn to 2
        end if

        if character -1 of fn is "." then
            set fn to fn & "txt"
        end if

        try
            set p to target of window 1
        on error
            set p to desktop as alias
        end try
        set f to make new file at p with properties {name:fn}
        set selection to f
        if opn is 1 then
            open f
        else if opn is 2 then
            open f using (path to application "TextMate")
        end if
    end tell
end try

Estoy usando esto a través de FastScripts , pero también debería funcionar como un servicio de Automator. Y sí, este script es feo incluso para los estándares AppleScript.

Lri
fuente
0

Una modificación de la respuesta de finiteloop que es un poco más limpia.

  1. Crea un nuevo servicio en Automator
  2. Cambiar 'El servicio recibe las carpetas seleccionadas "a"
  3. Dele la acción "Establecer valor de variable", cambie "Almacenamiento 1" a una variable llamada "dest"
  4. Agregue la acción "Nuevo archivo de texto" y arrastre la variable "dest" desde el panel Variable en la parte inferior de la pantalla al campo "Dónde". Esto es más simple que copiar un archivo de plantilla.
  5. Ahorre con un nombre razonable.

Ahora, cuando hace clic en una carpeta, puede ir al menú Servicios en la parte inferior y encontrar su función.

La función también aparecerá en la página de configuración de Servicios; Configuración -> Teclado -> Accesos directos -> Servicios (lado izquierdo). Puede habilitarlo y deshabilitarlo aquí. También puede asignarle un atajo de teclado. Finalmente, si deselecciona suficientes elementos del submenú Carpeta (de modo que haya cuatro o menos), su función aparecerá en la parte inferior del Menú contextual.

Vincent Bauer
fuente