Die Fähigkeit von OS X, eine aktuell geöffnete Datei direkt in der Anwendung umzubenennen oder zu verschieben, ist wirklich praktisch:
Um noch einen Schritt weiter zu gehen, gibt es einen Trick, um die aktuelle Datei auch in der App zu löschen ? (Offensichtlich müsste das „Schließen“ der Datei die zweite Hälfte des Prozesses sein.)
Es würde viel Zeit sparen, die Datei nicht schließen, manuell im Finder suchen und dann in den Papierkorb verschieben zu müssen – sondern sie einfach an Ort und Stelle zu löschen.
Ich habe versucht, die „Datei“ (mit dem Dateisymbol links neben dem Dateinamen im Fenstertitel) auf das Papierkorbsymbol im Dock zu ziehen, aber das verschiebt sie nicht wirklich in den Papierkorb.
Das Beste, was mir einfällt, ist, ~/.Trash
das Verzeichnis als Element in den Finder-Favoriten hinzuzufügen und dann das „Wo“ im obigen Screenshot in die erstellte Favoritenverknüpfung „Papierkorb“ zu ändern, gefolgt von einem Cmd+ W, um es zu schließen.
Es ist ein wenig klobig, aber es ist nicht schlimm.
Gibt es also einen raffinierten Automator-Workflow / AppleScript (der dann einfach einem Hotkey zugewiesen werden kann), um den obigen Prozess zu beschleunigen? Ideal wäre ein einzelnes AppleScript, das sowohl den Schritt zum Verschieben der aktuellen Datei in das Verzeichnis „Papierkorb“ als auch den anschließenden Tastendruck von Cmd + W nach einer Lücke von 200 ms ausführen könnte.
Ich verwende dieses AppleScript:
tell application (path to frontmost application as text)
set f to POSIX file (path of document 1) as text
close document 1
end tell
tell application "Finder" to move f to trash
Eine hackigere Version, die mit ein paar weiteren Anwendungen funktioniert:
try
tell document 1 of application (path to frontmost application as text)
set f to path
close
end tell
on error
tell application "System Events" to tell (process 1 whose frontmost is true)
value of attribute "AXDocument" of window 1
set f to do shell script "x=" & quoted form of result & ";x=${x/#file:\\/\\/};x=${x/#localhost/};printf ${x//%/\\\\x}"
keystroke "w" using command down
end tell
end try
POSIX file f
tell application "Finder" to move result to trash
Probieren Sie dieses AppleScript in einem Automator-Dienst aus (Sie können jedem Dienst einen Hotkey zuweisen):
on run
set x to path to frontmost application as string
tell application x to if exists document 1 then
try
try
set p to path of front document -- some app use --> path of document
p
on error
set p to file of front document -- some app use --> file of document
end try
my moveToTrash(p)
close front document
on error
my speakText("can't delete this document")
end try
else
my speakText("You have no open document in that application")
end if
end run
on moveToTrash(p)
if p starts with "/" then -- some app return posix path
set tFile to p as POSIX file as alias
else -- some app return HFS path
set tFile to p as alias
end if
tell application "Finder" to delete tFile
end moveToTrash
on speakText(t)
say t
end speakText
Ich habe das Skript mit diesen Anwendungen getestet ( "BBEdit", "TextWrangler", "TextEdit", "Preview", "QuickTime Player", "Pages", "Numbers", "Keynote", "Automator", "AppleScript Editor", " Xcode" ) auf Mavericks
Dieses Skript funktioniert nicht mit einigen Nicht-Apple-Anwendungen.
So weisen Sie dem neu erstellten Dienst eine Tastenkombination zu:
Öffnen Sie die Anwendung „Systemeinstellungen“, navigieren Sie zum Einstellungsbereich „Tastatur“ und wählen Sie die Registerkarte „Kurzbefehle“. Wählen Sie aus der Liste auf der linken Seite des Einstellungsbereichs die Kategorie Dienste aus. Rechts wird eine Liste der installierten Dienste angezeigt. Scrollen Sie zur letzten Kategorie mit dem Titel „Allgemein“ und suchen Sie den Dienst, den Sie gerade erstellt haben. Doppelklicken Sie ganz rechts neben dem Dienstnamen, um das Tasteneingabefeld zu aktivieren, und geben Sie dann die Tastenkombination ein, die Sie dem Dienst zuweisen möchten. Schließen Sie die Anwendung Systemeinstellungen.
Michal Kalinowski