Atajo de teclado de Mac a archivo rm [duplicado]

2

Posible duplicado:
Eliminación permanente de archivos en Mac OS

¿Cuál es el método abreviado de teclado de Mac para grabar un archivo? Sé que command + delete lo envía a la papelera, pero quiero borrarlo permanentemente, digamos con command + fn + delete.

ACTUALIZACIÓN: No parece que haya uno. Por lo tanto, quiero crear un servicio con automatizador y luego asignarle un atajo de teclado desde Preferencias del Sistema.

Puedo acceder a Automator - & gt; Servicio - & gt; El servicio recibe los archivos o carpetas seleccionados en Finder.app, pero ¿cómo escribo el script que luego se ejecuta? rm -rf #{file/folder name}?

ma11hew28
fuente
2
tal vez con turno? Al menos esa es la forma en que tienes que hacerlo en otro sistema operativo
thejh

Respuestas:

4

Para responder a su edición solicitando ayuda de Automator:

Utilizar el Ejecutar shell script acción, Pase la entrada como argumentos y el siguiente script:

for f in "$@"
do
    rm -rf "$f"
done

Puede asignar un atajo de teclado a través de Menú de aplicación , Servicios , Preferencias de servicios . Es un poco difícil asignar retroceso / "eliminar" a un atajo de teclado (ver comentarios en esta respuesta ) aunque.

Alternativamente, puede crear un solicitud en Automator, y agregue una referencia a la barra de herramientas del Finder (las aplicaciones se pueden arrastrar allí).


Asignando un atajo de teclado usando borrar ( retroceso ) o reenviar eliminar :

  1. Definir un atajo de teclado simple para el servicio sin borrar (p.ej. Cmd-Ctrl-Opt-G ) utilizando las preferencias del sistema. Salir de las preferencias del sistema.
  2. Abierto ~/Library/Preferences/pbs.plist utilizando Property List Editor y copia la clave para el servicio. Esta dentro NSServicesStatus y se parece a algo como (null) - Service Name - runWorkflowAsService. Salir del editor de la lista de propiedades.
  3. Abra Terminal e ingrese el siguiente comando (use la línea que copió anteriormente entre comillas y comillas dobles):

    defaults write pbs NSServicesStatus -dict-add '"(null) - Service Name - runWorkflowAsService"' '{ "key_equivalent" = "@\U0008"; }'

  4. Abierto Menú de aplicación » Servicios » Preferencias de servicio , y alternar su servicio.

  5. Disfruta de tu nueva combinación de teclas.

En la línea de comandos, @ es Cmd, ^ es Ctrl, $ es Shift y ~ es Opción. Mezcla y combina estos modificadores a tus preferencias. \U0008 es borrar ( retroceso ) \U007F es reenviar eliminar .

alt text

Daniel Beck
fuente
Con respecto a asignar un atajo de teclado usando borrar : defaults write pbs NSServicesStatus -dict-add '(null) - My Service Name - runWorkflowAsService' '{ "key_equivalent" = "@\U0008"; }' debería trabajo, pero (null) (que indica un servicio independiente, que no forma parte de una aplicación) aparentemente no es una clave válida para defaults: por defecto [56054: 903] No se pudo analizar [la clave]
Daniel Beck
¡Gracias! Estoy haciendo esto solo para Finder, por lo que aparece en com.apple.finder.plist. Quizás lo cambie para que funcione. Todas las aplicaciones . ¿Cuál es el propósito de aumentar el valor numérico para NSServicesUserDirectoryModDate? Yo pienso $ es Shift. Que es fn
ma11hew28
@Matt Incluso si su servicio solo es aplicable al Finder, la combinación de teclas se almacena en pbs.plist. Fn No es una clave modificadora. Si quieres seguir con Fn-Cmd-Delete o similar, esto es exactamente lo mismo que Cmd-Forward Delete. Delete el código es \U0008 arriba, no conozco el código clave para la eliminación hacia adelante. Si lo descubre, simplemente póngalo en la línea de comando del paso 3 y debería funcionar.
Daniel Beck
@Matt puedes intentarlo @\U007F para Cmd-Forward Delete, 0x7F es el código de clave ASCII para DEL.
Daniel Beck
1
Lo sentimos, se necesita otra edición :-) ya que parece funcionar lo siguiente: defaults write pbs NSServicesStatus -dict-add '"(null) - My Service Name - runWorkflowAsService"' '{ "key_equivalent" = "@\U0008"; }' (Por lo tanto: comillas dobles dentro de las comillas simples. ¡No estoy seguro de por qué lo intenté de repente!)
Arjan
0
set txt to ""
tell application "Finder"
    repeat with f in (get selection)
        set txt to txt & quoted form of POSIX path of (f as text) & " "
    end repeat
end tell
set cmd to "rm -rf " & txt
display dialog cmd & "?"
do shell script cmd

Puedes usar FastScripts (o por ejemplo Maestro de teclado ) para asignar un acceso directo que solo está disponible en el Finder.

Lri
fuente