Pertanyaan Pintasan keyboard Mac ke file rm [duplikat]


Kemungkinan Duplikat:
Menghapus file secara permanen di Mac OS 

Apa cara pintas keyboard Mac ke rm file? Saya tahu perintah + hapus mengirimkannya ke sampah, tetapi saya ingin menghapusnya secara permanen, katakan dengan perintah + fn + delete.

PEMBARUAN: Sepertinya tidak ada. Jadi, saya ingin membuat layanan dengan Automator dan kemudian menetapkan pintasan keyboard untuk itu dari System Preferences.

Saya bisa mendapatkan Automator -> Service -> Service menerima file atau folder yang dipilih di Finder.app, tetapi bagaimana cara menulis skrip yang kemudian berjalan rm -rf #{file/folder name}?


2
2017-12-15 15:57


asal


mungkin dengan shift? setidaknya itulah cara Anda melakukannya di OS lain - thejh


Jawaban:


Untuk menjawab pengeditan Anda meminta bantuan Automator:

Menggunakan Jalankan Shell Script tindakan, Masukan lulus sebagai argumen dan skrip berikut:

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

Anda dapat menetapkan pintasan keyboard melalui Menu Aplikasi, Jasa, Layanan Preferensi. Agak sulit untuk menetapkan backspace / "hapus" ke pintasan keyboard (lihat komentar di jawaban ini) sekalipun.

Anda dapat membuat alternatif aplikasi di Automator, dan tambahkan referensi ke toolbar Finder (aplikasi dapat diseret di sana).


Menetapkan pintasan keyboard menggunakan menghapus (menghapus) atau hapus ke depan:

  1. Tentukan pintasan keyboard sederhana untuk layanan tanpa menghapus (misalnya. Cmd-Ctrl-Opt-G) menggunakan System Preferences. Keluar dari System Preferences.
  2. Buka ~/Library/Preferences/pbs.plist menggunakan Property List Editor dan salin kunci untuk layanan. Itu ada di dalam NSServicesStatus dan terlihat seperti itu (null) - Service Name - runWorkflowAsService. Keluar dari Editor Daftar Properti.
  3. Buka Terminal dan masukkan perintah berikut (gunakan garis yang Anda salin sebelumnya antara tanda kutip dan tanda kutip ganda):

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

  4. Buka Menu Aplikasi » Jasa » Preferensi Layanan, dan ubah layanan Anda.

  5. Nikmati kombinasi tombol baru Anda.

Di baris perintah, @ adalah Cmd, ^ adalah Ctrl, $ is Shift, dan ~ adalah Option. Campur dan cocokkan pengubah ini dengan preferensi Anda. \U0008 aku s menghapus (menghapus), \U007F aku s hapus ke depan.

alt text


4
2017-12-15 17:21



Mengenai menetapkan cara pintas keyboard menggunakan menghapus: defaults write pbs NSServicesStatus -dict-add '(null) - My Service Name - runWorkflowAsService' '{ "key_equivalent" = "@\U0008"; }'  harus bekerja, tapi (null) (menunjukkan layanan yang berdiri sendiri, bukan bagian dari aplikasi) yang tampaknya bukan kunci yang valid untuk defaults: default [56054: 903] Tidak dapat menguraikan [kunci] - Daniel Beck♦
Terima kasih! Saya melakukan ini hanya untuk Finder, sehingga muncul di com.apple.finder.plist. Mungkin saya akan mengubahnya untuk bekerja Semua Aplikasi. Apa tujuan meningkatkan nilai angka untuk NSServicesUserDirectoryModDate? saya pikir $ adalah Shift. Apa fn? - ma11hew28
@Matt Bahkan jika layanan Anda hanya berlaku untuk Finder, kombinasi kuncinya disimpan di dalamnya pbs.plist. Fn bukan kunci pengubah. Jika Anda ingin melanjutkan Fn-Cmd-Delete atau serupa, ini adalah hal yang persis sama Cmd-Forward Delete. Deletekode itu \U0008 di atas, saya tidak tahu kode kunci untuk menghapus ke depan. Jika Anda menemukannya, masukkan saja ke baris perintah langkah 3 dan itu akan bekerja. - Daniel Beck♦
@Matt Anda bisa mencoba @\U007F untuk Cmd-Forward Delete, 0x7F adalah kode kunci ASCII untuk DEL. - Daniel Beck♦
Maaf, pengeditan lain diperlukan :-) seperti berikut ini tampaknya berfungsi: defaults write pbs NSServicesStatus -dict-add '"(null) - My Service Name - runWorkflowAsService"' '{ "key_equivalent" = "@\U0008"; }' (Oleh karena itu: tanda kutip ganda dalam tanda kutip tunggal. Tidak yakin mengapa saya tiba-tiba mencobanya!) - Arjan


Lihat posting MacGeekery ini.


1
2017-12-15 16:03





Saya tidak yakin apa pintasan keyboard atau bahkan jika itu ada tetapi Anda dapat menjalankan applescript yang akan menghapus file secara permanen. Berikut tautan dengan instruksi http://macphobia.com/deleting-an-item-windows-and-mac.macphobia


1
2017-12-15 16:04





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

Kamu dapat memakai FastScripts (atau misalnya Keyboard Maestro) untuk menetapkan pintasan yang hanya tersedia di Finder.


0
2018-06-18 13:40