Seringkali saya mendapati diri saya menyalin potongan kode ke clipboard sistem operasi saya dari internet. Lalu, saya mengambil langkah-langkah sederhana berikut:
- Beralih ke jendela Emacs saya
- Temukan tempat di mana saya ingin menempelkan kode
- Gunakan
C-y
(yank
) untuk menyisipkan teks yang disalin.
Namun, kadang-kadang saya menemukan (sangat mengecewakan saya) bahwa saya tanpa disadari menggunakan beberapa bentuk perintah kill (seperti kill-word
atau kill-line
) ketika saya berada di langkah 2. Dalam kasus seperti itu, teks yang disalin dari "clipboard" tidak pernah membuatnya menjadi kill cincin.
Apakah ada cara untuk memastikan bahwa teks yang disalin dari aplikasi lain selalu membuatnya menjadi ring kill saya?
Saya paling sering bekerja di Linux, tetapi saya juga menggunakan Emacs secara teratur pada Windows dan Mac OS X, jadi jawaban OS-agnostik lebih disukai.
copy-paste
clipboard
nispio
sumber
sumber
Jawaban:
Anda perlu untuk menyesuaikan
save-interprogram-paste-before-kill
untukt
. Ini akan mendorong clipboard Anda ke pembunuhan jika Anda membunuh sesuatu di emacs sebelum menempelkan clipboard. Kustomisasi terkait adalahyank-pop-change-selection
yang mendorong yank Anda saat ini dalam emacs ke clipboard. Agar keduanya bisa berfungsi, Anda perlux-select-enable-clipboard
(diganti dengangui-select-enable-clipboard
dalam emacs 25.1) agar menjadit
default.Alasan ini dimatikan secara default adalah untuk mencegah mendorong sejumlah besar data ke pembunuhan secara tidak sengaja yang berlangsung sepanjang sesi tidak seperti clipboard yang mudah diganti.
sumber
save-interprogram-paste-before-kill
tampaknya melakukan apa yang saya inginkan!gui-select-enable-clipboard
dipanggil adilselect-enable-clipboard
.solusi lain hanya menggunakan alat Cli jika memungkinkan,
pbcopy / pbpaste di Mac
getclip / putclip di Cygwin
Keuntungan dari solusi ini adalah bahwa clipboard selalu dapat digunakan (misalnya, ketika Anda melakukan remote ssh).
Jawaban saya terdiri dari dua bagian. bagian satu memperkenalkan beberapa alat praktis untuk memanipulasi clipboard. bagian dua akan menjawab pertanyaan awal Anda (simpan clipboard di ring bunuh).
BAGIAN SATU
Masukkan kode di bawah ini ke ~ / .emacs Anda:
BAGIAN KEDUA
masukkan kode di bawah ini ke ~ / .emacs Anda, dan mulai sekarang, gunakan "Mx paste-from-clipboard-and-cc-kill-ring" untuk menempelkan:
sumber