OS X Snow Leopard: item de automação do Finder para criar um novo arquivo de texto

4

Como posso criar um item de autômato do Finder que aparece em 'Serviços' para criar um novo arquivo de texto dentro de uma pasta de arquivos? Eu uso o TextMate, então é melhor se a solução for independente do editor (ao invés de usar o TextEdit).

    
por Ricardo Sanchez-Saez 10.02.2010 / 05:51

6 respostas

1

Do jeito que eu faço: Eu crio um arquivo de texto fictício e o armazeno em alguma pasta em meus documentos (isso é usado como um modelo para cada vez que o serviço é executado). Em seguida, crio um fluxo de trabalho (serviço) da seguinte forma:

Tudooquevocêprecisafazeragoraéclicarcomobotãodireitodomousenapastaemquedesejacolocaronovoarquivoeselecionaroserviçocriadosalvandoestefluxodetrabalho.

Paraabriroarquivorecém-criado,vocêpodeadicionarumaação"abrir itens do Finder", na qual você obviamente selecionaria TextMate em vez de TextEdit. Para torná-lo independente do editor, você pode avisá-lo para abrir com seu aplicativo padrão, e ele fará isso.

Se pedir o nome em tempo de execução for muito importante para você, adicione uma ação get text e atribua-a a uma segunda variável e adicione uma ação rename após a ação copy e diga replace text, substituindo o nome de seu arquivo de modelo com a variável de texto. Por padrão, você não pode usar variáveis de texto da maneira que descrevi, mas a postagem a seguir fornece uma solução para isso. Eu sei que funciona em 10.6, e pode ou não funcionar com versões anteriores do OSX.

veja aqui para instruções

    
por 25.02.2010 / 03:27
2

Esta não é uma ação de automação, mas resolveu o problema de criar um novo arquivo onde eu queria: link . Veja a solução chamada "Uma solução ainda melhor" (parte inferior da página).

    
por 05.03.2010 / 14:22
1

Isso deve funcionar:

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

Se você quiser apenas um arquivo de texto vazio, tente o seguinte:

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

Edit: Eu li sua pergunta novamente ... este é um AppleScript. Tenho mais experiência com Terminal simples do que com o Automator e o AppleScript, mas presumo que você possa chamar um AppleScript do Automator?

    
por 13.02.2010 / 17:37
1

Ok, eu trapaceei, mas você ainda recebe um serviço do Automator. Você precisará ter o setup do TextMate para usar o shell (normalmente isso é feito quando você o instala pela primeira vez, então você pode usar mate da CLI).

Abra o Automator e crie um novo serviço

De Utilitários , arraste sobre uma janela Executar Script .

Solte o seguinte script:

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

O que isto basicamente faz é criar um arquivo na sua área de trabalho chamado newfile.txt e depois abrir no TextMate.

Atualizaçãosolicitada:

  1. AbraoAutomaterecrieumnovoserviço
  2. Arrastesobreumajanela"Executar o Applescript"
  3. Cole no seguinte Applescript que foi criado 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. Salvar o serviço

Oqueissofaz:

Sevocêselecionarotextoemumaplicativo,eleabriráumarquivoTextMateembrancocomonomedotextoselecionado,najanelamaisavançadadoFinder.

Oquevocêprovavelmenteestátentandofazer:

Outraspessoasescreveram tutoriais sobre como criar um botão TextMate que fica na barra de ferramentas do Finder que abrirá o documento em branco nessa janela ou abrirá um arquivo selecionado no TextMate. Que é o que parece ser o que você quer fazer e não requer Automator.

    
por 15.02.2010 / 23:33
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

Estou usando isso via FastScripts , mas também deve funcionar como um serviço do Automator. E sim, esse script é feio até mesmo pelos padrões AppleScript.

    
por 22.05.2011 / 23:10
0

Uma modificação da resposta do finiteloop é um pouco mais limpa.

  1. Crie um novo serviço no Automator
  2. Alterar "o serviço recebe selecionado" para "pastas"
  3. Dê a ação "Definir valor da variável", altere "Armazenamento 1" para uma variável chamada "dest"
  4. Adicione a ação "Novo arquivo de texto" e arraste a variável "dest" do painel Variável na parte inferior da tela para o campo "Onde". Isso é mais simples do que copiar um arquivo de modelo.
  5. Salve com um nome razoável.

Agora, quando você clica em uma pasta, pode ir até o menu Serviços na parte inferior e encontrar sua função.

A função também aparecerá na página de configurações dos Serviços; Configurações - > Teclado - > Atalhos - > Serviços (lado esquerdo). Você pode ativá-lo e desativá-lo aqui. Você também pode atribuir um atalho de teclado. Finalmente, se você desmarcar itens suficientes do submenu Folder (para que haja quatro ou menos), sua função aparecerá na parte inferior do menu de contexto.

    
por 14.02.2017 / 02:22