Jawaban:
Untuk menyalin wilayah saat ini ke papan klip OS X, Anda dapat menggunakan
(shell-command-on-region (region-beginning) (region-end) "pbcopy")
Kebalikannya, menyalin buffer pasta OS X ke cincin bunuh Emacs, tidak disarankan. Cincin bunuh dan papan klip adalah struktur yang sangat berbeda dan tidak ada jawaban yang baik untuk apa, tepatnya, mendorong papan klip ke dalam cincin bunuh. Namun, Anda dapat menjalankannya pbpaste
secara manual untuk mendapatkan konten clipboard saat ini.
Tambahkan ini ke ~/.emacs
:
(defun pbcopy ()
(interactive)
(call-process-region (point) (mark) "pbcopy")
(setq deactivate-mark t))
(defun pbpaste ()
(interactive)
(call-process-region (point) (if mark-active (mark) (point)) "pbpaste" t t))
(defun pbcut ()
(interactive)
(pbcopy)
(delete-region (region-beginning) (region-end)))
(global-set-key (kbd "C-c c") 'pbcopy)
(global-set-key (kbd "C-c v") 'pbpaste)
(global-set-key (kbd "C-c x") 'pbcut)
Jika Anda menggunakan Emacs di iTerm 2, Anda juga dapat memetakan ulang kombinasi kunci dalam preferensi:
Kemudian tambahkan sesuatu seperti ini ke ~/.emacs
:
(global-set-key (kbd "<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)
Berikut ini solusi untuk mengintegrasikan OS X Clipboard ke cincin bunuh Emacs oleh Daniel Nelson: https://github.com/wesen/emacs/blob/master/pbcopy.el
Komentar penulis:
Memungkinkan kill-ring untuk berinteraksi dengan clipboard saat menjalankan Emacs dari terminal Mac OSX (tanpa kehilangan fungsionalitas kill-ring penuh). Yang saya lakukan hanyalah memodifikasi
xclip.el
untuk bekerja denganpbcopy
danpbpaste
. Terima kasih yang sebenarnya kepada Leo Shidai Liu, penulis xclip.el.
Berikut ini hanya berfungsi, dapatkan dari sini :)
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))
(defun paste-to-osx (text &optional push)
(let ((process-connection-type nil))
(let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
(process-send-string proc text)
(process-send-eof proc))))
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx))
Versi emacs yang disertakan dengan OS X terlalu tua untuk menyediakan fungsionalitas ini.
Untungnya Anda dapat memperbarui emacs ke versi yang terintegrasi dengan clipboard Anda di sini: http://emacsformacosx.com
Saya percaya bahwa Anda menggunakan Ctrl+ Yuntuk menempel di emacs, setelah pembaruan.
pbcopy
dan pbpaste
keduanya aplikasi terminal; aplikasi terminal lainnya dapat melakukan apa yang mereka lakukan, atau cukup memanggil mereka secara langsung.
pbcopy
ke Emacs cut & copy. Apa itu mungkin?
Saya menemukan posting ini sangat berguna (mendefinisikan 2 fungsi dan menetapkan pintasan untuk mereka dalam file ~ / .emacs Anda).
Setelah menambahkan baris-baris itu ke file .emacs Anda, Anda tidak akan memiliki akses ke pintasan tersebut sampai Anda membuka sesi shell baru (tab / jendela). Biarkan perubahan diterapkan.
Anda bisa mendapatkan interaksi seperti itu dengan clipboard secara transparan saat menjalankan Emacs di terminal teks dengan mengaktifkan yang xclip-mode
disediakan oleh xclip
paket yang dapat Anda instal dari GNU ELPA (yaitu via M-x package-list-packages RET
).
Lihat juga /emacs/10900/ untuk pertanyaan & jawaban yang serupa.
/usr/bin/emacs
executable kuno yang dibundel oleh Apple dengan OSX dan mana yang sewenang-wenang terbatas pada terminal teks?