4 votes

Supprimer un fichier actuellement ouvert directement dans l'application ?

La capacité d'OS X à renommer ou déplacer un fichier ouvert directement dans l'application est vraiment pratique :

enter image description here

Pour aller plus loin, y a-t-il une astuce pour réellement supprimer le fichier actuel dans l'application également ? (Il est évident que la "fermeture" du fichier devrait être la deuxième partie du processus).

On gagnerait beaucoup de temps si l'on n'avait pas à fermer le fichier, à le localiser manuellement dans le Finder, puis à le déplacer vers la Corbeille - mais si l'on pouvait simplement le supprimer sur-le-champ.

J'ai essayé de faire glisser le "fichier" (avec l'icône de fichier à gauche du nom du fichier dans le titre de la fenêtre) vers l'icône de la Corbeille dans le Dock, mais cela ne le déplace pas vraiment vers la Corbeille.

Le mieux que je puisse faire est d'ajouter ~/.Trash en tant qu'élément dans les Favoris du Finder, puis changez le "Où" dans la capture d'écran ci-dessus pour le raccourci favori "Corbeille" créé, suivi d'un bouton "Où". Cmd + W pour le fermer.

C'est un peu maladroit, mais ce n'est pas mauvais.

Existe-t-il donc un flux de travail Automator / AppleScript (qui peut ensuite être facilement assigné à un raccourci clavier), pour rendre le processus ci-dessus plus rapide ? Un seul AppleScript qui pourrait exécuter à la fois l'étape de déplacement du fichier actuel vers le répertoire 'Trash' et ensuite l'appui sur la touche Cmd+W après un intervalle de 200ms par exemple, serait idéal.

1voto

Fuzzy Purple Monkey Points 702

J'utilise cet 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

Une version plus bricolée qui fonctionne avec un peu plus d'applications :

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

0voto

Essayez ceci AppleScript dans un service Automator (vous pouvez attribuer une touche de raccourci à n'importe quel service) :

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

J'ai testé le script sur ces applications ( "BBEdit", "TextWrangler", "TextEdit", "Preview", "QuickTime Player", "Pages", "Numbers", "Keynote", "Automator", "AppleScript Editor", "Xcode", etc. ) sur Mavericks

Ce script ne fonctionnera pas avec certaines applications non-apple.

Pour affecter une combinaison de touches au service nouvellement créé :

Ouvrez l'application Préférences système et accédez au volet de préférences Clavier, puis sélectionnez l'onglet Raccourcis. Dans la liste située à gauche du volet de préférences, sélectionnez la catégorie Services. Une liste des services installés s'affiche sur la droite. Faites défiler jusqu'à la dernière catégorie intitulée Général, et localisez le service que vous venez de créer. Double-cliquez à l'extrême droite du nom du service pour activer le champ de saisie des touches, puis tapez la combinaison de touches que vous souhaitez affecter au service. Fermez l'application Préférences système.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X