Jangan ingin iBooks selalu menempelkan "Kutipan Dari" dari apa yang telah saya salin

30

Saya membaca di iBooks, dan beberapa sumber lainnya dan mengumpulkan catatan saya di EverNote. Ketika saya menyalin teks dari iBooks untuk menyimpannya sebagai catatan di beberapa aplikasi eksternal lainnya seperti EverNote, ia terus menempelkan info sumber yang sangat mengganggu dan saya harus terus menghapusnya setelah setiap salin-tempel. Sebagai contoh:

“To bind this class using Ninject, I specify the value of the constructor parameter using the WithConstructorArgument method in the AddBindings method, as shown in Listing 6-20.”

Excerpt From: Adam Freeman. “Pro ASP.NET MVC 5.” iBooks. https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewBook?id=4CB3769B56E7D2A905C0332D53D7E31D
EricFromSouthPark
sumber
2
Anda tidak dapat menghindari ini. Apple memprogramnya dengan cara itu karena legal dan hak cipta. Jadi, berita buruk untuk Anda harus terbiasa. :-(
konqui
mungkin Anda bisa membuat Script Automator - tapi saya tidak yakin apakah Anda dapat mengedit Text Copy + Paste Process ...
bMalum
3
Itu benar-benar menjengkelkan ketika Anda benar-benar memiliki hak untuk menyalin frasa : '(
Rubens Mariuzzo
1
Datang ke sini karena menempel dari contoh buku Swift menyebalkan. Satu lagi alasan untuk mendapatkan literatur dari iBooks tetapi semua buku pemrograman tentang Kindle.
Dirk Bester
2
@konqui Mereka tahu kita bisa menghapusnya. Itu tidak terlalu pintar. Ini adalah boilerplate yang mengganggu untuk tugas dasar.
atilkan

Jawaban:

11

Posting blog ini memberikan contoh cara melakukannya menggunakan skrip Automator dengan pintasan keyboard.

Di Automator, buat Layanan baru yang tidak menerima input. Berikan tiga tindakan ini:

  1. Dapatkan Isi dari Clipboard
  2. Jalankan Script Shell
  3. Menyalin ke clipboard

Masukkan ini dalam tindakan Run Shell Script:

# strip out iBooks citation
sed -E -e 's/^[ ]?[0-9]* //g' | sed -E -e 's/“[ ]?[0-9]?[ ]?//g' | sed -E -e 's/”$//g'  | sed -E -e 's/^(Excerpt From).*//g'

Layanan "Hapus kutipan iBooks" di Automator

Setelah menyimpan layanan, Anda dapat menetapkan pintasan untuk tindakan ini, seperti I, di System Preferences> Keyboard> Shortcuts> Services. Kemudian Anda menekan pintasan itu sebelum menempelkannya jika ingin menyingkirkan teks yang ditambahkan iBooks.

Amir Raminfar
sumber
Terima kasih Amir, sangat membantu, ini telah menggangguku sejak lama!
GGx
Bukankah itu benar-benar sangat bermasalah? Apa yang terjadi jika ada kecocokan regex untuk beberapa hal lain yang Anda salin tempel?
t0mgs
@ t0mgs maka Anda tidak menggunakan pintasan yang ditetapkan sebelum menempel
Martin
Saya kira sah. Terima kasih!
t0mgs
5

Anda bisa menggunakan Keyboard Maestro untuk memicu AppleScript berikut:

set original_clipboard to the clipboard
set paragraph_count to count of paragraphs of original_clipboard
-- assuming the last two paragraphs are what you want to strip out--
-- that is, the blank line and the attribution
set new_clipboard to paragraphs 1 thru -2 of original_clipboard as string
set the clipboard to new_clipboard
-- now you can paste

Dengan Keyboard Maestro Anda akan membuat makro baru, dipicu oleh beberapa keystroke (mungkin Command-Option-V), dan langkah pertama adalah "Execute an AppleScript" (di bagian Execute) menggunakan skrip di atas. Langkah selanjutnya adalah "Tempel" (di bagian Clipboard). Anda akan menyalin teks Anda, lalu klik di mana Anda ingin menempelkannya, lalu tekan Command-Option-V untuk memasangnya tanpa dua paragraf terakhir.

Program makro lainnya akan bekerja terlalu lama asalkan mereka tahu cara menjalankan AppleScript.

Christian Boyce
sumber
Saya menggunakan solusi Anda, tetapi hasil akhirnya termasuk tanda kutip. Bagaimana cara saya menyingkirkan itu sehingga tanda kutip di sekitarnya dihapus?
Michael Jaq
Anda bahkan tidak perlu program eksternal — letakkan AppleScript ke dalam layanan automator, kemudian atur layanan automator ke pintasan keyboard.
Wowfunhappy
@MichaelJaq Jawaban saya berisi makro untuk Keyboard Maestro yang menghapus tanda kutip juga.
Rory O'Kane
@MichaelJaq Anda dapat menggunakan metode ini dengan skrip shell di utas ini dan itu akan menghapus kutipan. Ubah "Execute an AppleScript" menjadi "Execute Shell Script". AppleScript ini tidak menghapusnya sehingga hanya sebagian hasil.
MarkBTomlinson
3

Saya telah membuat skrip untuk ClipMenu (utilitas clipboard macOS) untuk menghapus informasi yang tidak diinginkan:

return clipText.replace(/^“/, '').replace(/”\s*Excerpt.*iBooks\.\s?$/, '');

Simpan sebagai /Users/USERNAME/Library/Application Support/ClipMenu/script/action/iBooks.js

Filip Suk
sumber
3

Berikut adalah langkah-langkah untuk menyalin teks dari iBooks:

  1. Sorot bagian-bagian yang ingin Anda salin.
  2. Popup akan dibuka secara otomatis atau Anda harus membuka popup menggunakan klik kanan pada bagian yang dipilih.
  3. Pilih opsi 'Tambahkan Catatan' dari sembulan.
  4. Teks yang dipilih / disorot akan ditampilkan di panel kiri.
  5. Klik kanan pada bagian di panel kiri dan pilih opsi 'Salin'.

Saya telah membuat video untuk menunjukkan cara kerjanya: https://youtu.be/ZQLl_Gl9TMw

Selamat coding!

Renish Dadhaniya
sumber
> Teks yang dipilih / disorot akan ditampilkan di panel kiri. Panel kiri apa? Ini salah. Tidak ada panel kiri yang tersisa
Hijau
3

Berikut adalah cara mengatur makro Keyboard Maestro untuk menghapus teks tambahan, termasuk tanda kutip, saat teks disalin dari iBooks.

Pertama, buat grup makro yang disebut "pemetaan khusus iBooks" dan tambahkan iBooks di dalam "Tersedia dalam aplikasi ini". (Dalam versi macOS yang lebih baru, aplikasi akan dinamai Books, bukan iBooks.)

Grup "pemetaan khusus iBooks" di Keyboard Maestro

Kemudian buat makro bernama "Salin Tanpa Kutipan". Tetapkan tombol pintas C. Berikan makro tindakan berikut:

  1. Papan klip> Salin
  2. Clipboard> Cari dan Ganti
    • Cari: Papan Klip Sistem
    • untuk: Ekspresi Reguler (peka huruf besar kecil)
      • ^“
    • dan ganti dengan:
      • (biarkan kosong)
  3. Clipboard> Cari dan Ganti
    • Cari: Papan Klip Sistem
    • untuk: Ekspresi Reguler (peka huruf besar kecil)
      • ”\s*Excerpt.*Books\.\s?$
    • dan ganti dengan:
      • (biarkan kosong)

Ini adalah tampilannya di Keyboard Maestro:

"Salin Tanpa Kutipan" makro di Keyboard Maestro

Sekarang semua teks di iBooks yang disalin menggunakan pintasan keyboard itu akan membuat teks tambahan dilucuti dari kedua ujungnya.

Rory O'Kane
sumber
Terima kasih atas jawaban Filip Suk untuk ungkapan regulernya.
Rory O'Kane
Bagi mereka yang iBooksnya digantikan oleh "Buku", cukup modifikasi RegEx terakhir dengan”\s*Excerpt.*Books\.\s?$
Tim N.
@ TIMIM. Terima kasih. Saya memperbarui jawaban dan tangkapan layar untuk menggunakan regex itu, karena regex itu harus bekerja untuk kedua nama aplikasi.
Rory O'Kane
1

dari jawaban Amir Raminfar. ini adalah cara jika Anda ingin menyalin secara langsung tanpa Perintah C untuk menyimpan konten ke papan klip.

cukup ubah Workflow menerima arus ke: "teks" di "Books.app" dan nonaktifkan dapatkan konten dari Clipboard.

Long Vu
sumber
Selamat Datang di Tanya Berbeda. Ini adalah komentar pada Jawaban sebelumnya dan bukan Jawaban yang berdiri sendiri. Seharusnya bukan jawabannya sendiri. Silakan lihat Cara Menjawab untuk kiat memberikan jawaban di sini. - Dari Ulasan
fsb