Wie kann ich ein Finder-Automatenelement erstellen, das unter "Dienste" zum Erstellen einer neuen Textdatei in einem Dateiordner angezeigt wird? Ich benutze TextMate, also besser, wenn die Lösung editorunabhängig ist (anstatt TextEdit zu verwenden).
Wie kann ich ein Finder-Automatenelement erstellen, das unter "Dienste" zum Erstellen einer neuen Textdatei in einem Dateiordner angezeigt wird? Ich benutze TextMate, also besser, wenn die Lösung editorunabhängig ist (anstatt TextEdit zu verwenden).
Antworten:
So mache ich das: Ich erstelle eine Dummy-Textdatei und speichere sie in einem Ordner in meinen Dokumenten (diese wird bei jeder Ausführung des Dienstes als Vorlage verwendet). Ich erstelle dann einen Workflow (Service) wie folgt:
Jetzt müssen Sie nur noch mit der rechten Maustaste auf den Ordner klicken, in dem die neue Datei gespeichert werden soll, und den Dienst auswählen, der durch Speichern dieses Workflows erstellt wurde.
Um die neu erstellte Datei zu öffnen, können Sie eine Aktion "Finder-Elemente öffnen" hinzufügen, in der Sie offensichtlich TextMate anstelle von TextEdit auswählen würden. Um den Editor unabhängig zu machen, können Sie festlegen, dass er mit der Standardanwendung geöffnet werden soll.
Wenn es für Sie sehr wichtig ist, zur Laufzeit nach dem Namen zu fragen, können Sie eine Aktion zum Abrufen von Text hinzufügen und einer zweiten Variablen zuweisen. Fügen Sie dann nach der Kopieraktion eine Umbenennungsaktion hinzu, und sagen Sie "Text ersetzen" und ersetzen Sie den Namen Ihrer Vorlagendatei mit der Textvariablen. Standardmäßig können Sie keine Textvariablen in der von mir beschriebenen Weise verwenden, aber der folgende Beitrag bietet eine Möglichkeit, dies zu umgehen. Ich weiß, dass es unter 10.6 funktioniert und möglicherweise unter früheren Versionen von OSX nicht funktioniert.
siehe hier für Anweisungen
Dies ist keine Automator-Aktion, aber das Problem beim Erstellen einer neuen Datei, in der ich wollte, wurde behoben: http://ignorethecode.net/blog/2009/05/31/creating-new-documents/ . Schauen Sie sich die Lösung mit dem Namen "Eine noch bessere Lösung" an (unten auf der Seite).
Das sollte funktionieren:
do shell script "echo '[text for the text file]' > [path to folder & file].txt"
Wenn Sie nur eine leere Textdatei möchten, versuchen Sie Folgendes:
do shell script " > [path to folder and file].txt"
Edit: Ich habe deine Frage nochmal gelesen ... das ist ein AppleScript. Ich habe mehr Erfahrung mit normalem Terminal als mit Automator und AppleScript, aber ich nehme an, Sie können ein AppleScript von Automator aus aufrufen.
Okay, ich habe geschummelt, aber Sie bekommen immer noch einen Automator-Service. Sie müssen TextMate einrichten, um die Shell verwenden zu können (dies geschieht normalerweise bei der Erstinstallation, sodass Sie sie mate
über die CLI verwenden können).
Öffnen Sie Automator und erstellen Sie einen neuen Service
Ziehen Sie unter Dienstprogramme über ein Fenster Shell-Skript ausführen.
Fügen Sie das folgende Skript ein:
cd ~/Desktop;
touch newfile.txt;
mate newfile.txt
Im Grunde bedeutet dies, dass Sie eine Datei mit dem Namen newfile.txt auf Ihrem Desktop erstellen und dann in TextMate öffnen.
Angefordertes Update:
Fügen Sie das folgende von Olivier Fabré verfasste Applescript ein :
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
Speichern Sie den Dienst
Was dies bewirkt:
Wenn Sie Text in einer Anwendung auswählen, wird im vordersten Finder-Fenster eine leere TextMate-Datei mit dem Namen des ausgewählten Texts geöffnet.
Was Sie wahrscheinlich versuchen zu tun:
Andere Personen haben Tutorials zum Erstellen einer TextMate-Schaltfläche in der Finder-Symbolleiste geschrieben, die ein leeres Dokument in diesem Fenster oder eine ausgewählte Datei in TextMate öffnet. So hört es sich an, als ob Sie etwas tun möchten und keinen Automator benötigen.
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
Ich verwende dies über FastScripts , aber es sollte auch als Automator-Dienst funktionieren. Und ja, dieses Skript ist selbst für AppleScript-Standards hässlich.
Eine Modifikation der Antwort von finiteloop, die ein bisschen sauberer ist.
Wenn Sie nun auf einen Ordner klicken, können Sie unten im Menü Dienste nach Ihrer Funktion suchen.
Die Funktion wird auch auf der Seite mit den Diensteinstellungen angezeigt. Einstellungen -> Tastatur -> Kurzbefehle -> Dienste (linke Seite). Sie können es hier aktivieren und deaktivieren. Sie können ihm auch eine Tastenkombination zuweisen. Wenn Sie im Untermenü Ordner die Auswahl von genügend Elementen aufheben (maximal vier), wird Ihre Funktion am unteren Rand des Kontextmenüs angezeigt.