web-dev-qa-db-ja.com

OS X Snow Leopard:新しいテキストファイルを作成するためのFinderオートマトンアイテム

ファイルフォルダ内に新しいテキストファイルを作成するために「サービス」に表示されるFinderオートマトンアイテムを作成するにはどうすればよいですか?私はTextMateを使用しているので、ソリューションが(TextEditを使用するよりも)エディターに依存しない方が良いです。

方法:ダミーのテキストファイルを作成し、ドキュメント内のフォルダーに保存します(これは、サービスが実行されるたびにテンプレートとして使用されます)。次に、次のようにワークフロー(サービス)を作成します。

ここで行う必要があるのは、新しいファイルを配置するフォルダーを右クリックし、このワークフローを保存して作成したサービスを選択することだけです。

新しく作成したファイルを開くには、「Finderアイテムを開く」アクションを追加します。このアクションでは、TextEditではなくTextMateを選択します。エディターに依存しないようにするには、デフォルトのアプリケーションで開くように指示すると、そうなります。

実行時に名前を尋ねることが非常に重要な場合は、テキストの取得アクションを追加して2番目の変数に割り当て、コピーアクションの後に名前の変更アクションを追加して、テキストの置換と言い、テンプレートファイルの名前を置き換えることができます。テキスト変数を使用します。デフォルトでは、私が説明した方法でテキスト変数を使用することはできませんが、次の投稿はその回避策を提供します。私はそれが10.6で動作することを知っており、以前のバージョンのOSXでは動作する場合と動作しない場合があります。

手順については ここ を参照してください

1
finiteloop

これはオートマトンアクションではありませんが、必要な場所に新しいファイルを作成する問題を解決しました: http://ignorethecode.net/blog/2009/05/31/creating-new-documents/ 。 「さらに良い解決策」(ページの下部)と呼ばれる解決策を見てください。

2
user30266

これは機能するはずです:

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

空のテキストファイルが必要な場合は、次のことを試してください。

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

編集:私はあなたの質問をもう一度読みました...これはAppleScriptです。 AutomatorやAppleScriptよりもプレーンターミナルの方が経験が豊富ですが、AutomatorからAppleScriptを呼び出すことができると思いますか?

1
trolle3000

さて、私はだましましたが、あなたはまだAutomatorサービスを受けています。 TextMate シェルを使用するためのセットアップ が必要になります(通常、最初にインストールするときにこれを行うため、CLIからmateを使用できます)。

Automatorを開き、新しいサービスを作成します

UtilitiesからRun Shell Scriptウィンドウ上にドラッグします。

次のスクリプトをドロップします。

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

これが基本的に行うことは、デスクトップにnewfile.txtという名前のファイルを作成し、TextMateで開くことです。

alt text

要求された更新:

  1. Automaterを開き、新しいサービスを作成します
  2. 「Applescriptの実行」ウィンドウにドラッグします
  3. OlivierFabré によって作成された次のApplescriptを貼り付けます。

    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. サービスを保存する

    Automator

これは何をしますか:

アプリケーションでテキストを選択すると、選択したテキストの名前が付いた空白のTextMateファイルが最前面のFinderウィンドウに開きます。

おそらくあなたがやろうとしていること:

他の人々は、FinderツールバーにあるTextMateボタンを作成して、そのウィンドウで空白のドキュメントを開くか、TextMateで選択したファイルを開くことについて チュートリアル と書いています。これはあなたがやりたいことのように聞こえ、Automatorを必要としません。

1
Darren Newton

少しすっきりしたfiniteloopの答えの修正。

  1. Automatorで新しいサービスを作成する
  2. 「サービスは選択された」を「フォルダ」に変更します
  3. 「変数の値を設定」アクションを実行し、「ストレージ1」を「dest」という変数に変更します。
  4. 「新しいテキストファイル」アクションを追加し、変数「dest」を画面下部の「変数」ペインから「場所」フィールドにドラッグします。これは、テンプレートファイルをコピーするよりも簡単です。
  5. 妥当な名前で保存します。

これで、フォルダをクリックすると、下部にある[サービス]メニューに移動して、機能を見つけることができます。

この機能は、[サービス設定]ページにも表示されます。 [設定]-> [キーボード]-> [ショートカット]-> [サービス](左側)。ここで有効または無効にできます。キーボードショートカットを割り当てることもできます。最後に、フォルダサブメニューから十分な数の項目を選択解除すると(4つ以下になるように)、関数はコンテキストメニューの下部に表示されます。

0
Vincent Bauer
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

私はこれを FastScripts 経由で使用していますが、Automatorサービスとしても機能するはずです。そして、はい、このスクリプトはAppleScript標準でも醜いです。

0
Lri