Elimina un file attualmente aperto direttamente nell'applicazione?

4

La capacità di OS X di rinominare o spostare un file attualmente aperto direttamente all'interno dell'applicazione è molto utile:

Perfareunulteriorepassoavanti,c'èuntruccopereliminareilfilecorrenteall'internodellaapp?(Ovviamente'chiudere'ilfiledovrebbeesserelasecondametàdelprocesso.)

Risparmierebbeunsaccoditempopernondoverchiudereilfile,localizzarlomanualmenteinFinder,quindispostarlonelCestino,masolocancellarlopropriolìepoi.

Hoprovatoatrascinareil"file" (con l'icona del file a sinistra del nome del file nel titolo della finestra) sull'icona del Cestino sul Dock, ma in realtà non lo sposta nel Cestino.

Il meglio che posso pensare è aggiungere ~/.Trash directory come elemento in Finder Favorites, quindi cambiare 'Where' nello screenshot qui sopra al collegamento preferito 'Trash' creato, seguito da un Cmd + W per chiuderlo.

È un po 'goffo, ma non è male.

Quindi c'è un flusso di lavoro di Automator / AppleScript (che può quindi essere facilmente assegnato a un tasto di scelta rapida), per rendere più rapido il processo di cui sopra? Un singolo AppleScript in grado di eseguire sia la procedura per spostare il file corrente nella directory "Cestino" sia la successiva pressione di tasto Cmd + W dopo un gap di 200 ms, ad esempio, sarebbe ideale.

    
posta 30.09.2014 - 14:58
fonte

2 risposte

1

Io uso questo 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

Una versione hackier che funziona con alcune altre applicazioni:

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
    
risposta data 01.10.2014 - 03:29
fonte
0

Prova questo AppleScript in un servizio di Automator (puoi assegnare un tasto di scelta rapida a qualsiasi servizio):

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

Ho testato lo script su queste applicazioni ( "BBEdit", "TextWrangler", "TextEdit", "Anteprima" "QuickTime Player", "Pages", "Numbers", "Keynote", "Automator", "AppleScript Editor", "Xcode" ) su Mavericks

Questo script non funzionerà con alcune applicazioni non Apple.

Per assegnare una combinazione di tasti al servizio appena creato:

Apri l'applicazione Preferenze di sistema e vai al pannello delle preferenze della tastiera e seleziona la scheda Scorciatoie. Dall'elenco a sinistra del pannello delle preferenze, selezionare la categoria Servizi. Un elenco dei servizi installati verrà visualizzato a destra. Scorri fino all'ultima categoria intitolata Generale e individua il servizio appena creato. Fare doppio clic all'estrema destra del nome del servizio per attivare il campo di immissione della sequenza di tasti e quindi digitare la combinazione di tasti che si desidera assegnare al servizio. Chiudi l'applicazione Preferenze di sistema.

    
risposta data 30.09.2014 - 21:56
fonte

Leggi altre domande sui tag