¿Borrar un archivo actualmente abierto directamente en la aplicación?

4
La capacidad de

OS X para cambiar el nombre o mover un archivo abierto dentro de la aplicación es realmente útil:

Parairunpasomásallá,¿hayalgúntrucoparaeliminarelarchivoactualdentrodelaaplicacióntambién?(Obviamente,'cerrar'elarchivodeberíaserlasegundamitaddelproceso).

Leahorraríamuchotiemponotenerquecerrarelarchivo,ubicarlomanualmenteenelFinder,luegomoverloalaPapelera,perosimplementeborrarloallímismo.

Heintentadoarrastrarel'archivo'(conelíconodelarchivoalaizquierdadelnombredelarchivoeneltítulodelaventana)alíconodelaPapeleraenelDock,peroesonolomuevealaPapelera.

Lomejorquesemeocurreesagregareldirectorio~/.TrashcomounelementoenlosfavoritosdelFinder,luegocambiarel'Dónde'enlacapturadepantallaanterioralaccesodirectofavorito'Trash'creado,seguidodeunCmd+Wparacerrarla.

Esunpocotorpe,peronoestámal.

Entonces,¿hayuningeniosoflujodetrabajodeAutomator/AppleScript(queluegosepuedeasignarfácilmenteaunatecladeaccesorápido),parahacerqueelprocesoanteriorseamásrápido?SeríaidealunúnicoAppleScriptquepudierarealizartantoelpasoparamoverelarchivoactualaldirectorio"Papelera" como la siguiente pulsación de Cmd + W después de un intervalo de 200 ms, por ejemplo.

    
pregunta 30.09.2014 - 14:58

2 respuestas

1

Yo uso este 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 versión más intrépida que funciona con algunas aplicaciones más:

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
    
respondido por el user495470 01.10.2014 - 03:29
0

Pruebe esto AppleScript en un servicio de Automator (puede asignar una tecla de acceso rápido a cualquier servicio):

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

Probé la secuencia de comandos en estas aplicaciones ( "BBEdit", "TextWrangler", "TextEdit", "Vista previa" "QuickTime Player", "Páginas", "Números", "Keynote", "Automator", "Editor de AppleScript", "Xcode" ) en Mavericks

Este script no funcionará con algunas aplicaciones que no sean de Apple.

Para asignar una combinación de pulsaciones de tecla al servicio recién creado:

Abra la aplicación Preferencias del sistema, navegue hasta el panel de preferencias del teclado y seleccione la pestaña Accesos directos. En la lista a la izquierda del panel de preferencias, seleccione la categoría Servicios. Una lista de los servicios instalados se mostrará a la derecha. Desplácese hasta la última categoría titulada General y busque el servicio que acaba de crear. Haga doble clic en el extremo derecho del nombre del servicio para activar el campo de entrada de pulsación y luego escriba la combinación de teclas que desea asignar al servicio. Cierre la aplicación de Preferencias del Sistema.

    
respondido por el jackjr300 30.09.2014 - 21:56

Lea otras preguntas en las etiquetas