Cara mengakses os clipboard menggunakan Emacs + Evil

8

Bagaimana saya bisa menarik ke / dari clipboard windows ketika menggunakan:

  • Windows 7 (x64)
  • GNU Emacs 24.4.1 (x64)
  • Evil 1.0.9
  • dan memiliki (setq x-select-enable-clipboard nil)di saya .emacs? (Aku meletakkan baris ini ada karena saya tidak ingin perubahan vim ( x, d, dll) untuk mengkritik clipboard os saya.

Aku mencoba "+p, "*p, "+y, "*y, CTRL+Ytapi tidak bekerja. Ketika saya menjalankannya :registersbahkan tidak muncul +atau *register.

Untuk memperjelas: Saya ingin Emacs berperilaku seperti Vim ketika menyalin / menarik ke / dari register yang berbeda, tanpa melanggar clipboard os dengan setiap perintah mengubah teks. Khususnya:

  • yy- TIDAK boleh mencabut teks ke os clipboard (hanya untuk 0mendaftar)
  • "+yy - Haruskah menarik teks ke os clipboard
  • dd - BUKAN clobber os clipboard
  • cw - Shold TIDAK clobber os clipboard
  • dll.
Kossak
sumber

Jawaban:

5

Saya menonaktifkan integrasi clipboard dengan:

(setq x-select-enable-clipboard nil)

Maka Anda masih dapat menyalin dan menempel menggunakan + register of evil. Jika Anda masih ingin berintegrasi dengan clipboard tanpa kejahatan, Anda dapat menggunakan fungsi ini untuk menempel:

(defun paste-from-clipboard ()
  (interactive)
  (setq x-select-enable-clipboard t)
  (yank)
  (setq x-select-enable-clipboard nil))

dan ini untuk menyalin:

(defun copy-to-clipboard()
  (interactive)
  (setq x-select-enable-clipboard t)
  (kill-ring-save (region-beginning) (region-end))
  (setq x-select-enable-clipboard nil))

Kemudian ikat copy-to-clipboardke M-wdan paste-from-clipboardke C-y, atau pengikat kunci pilihan Anda lainnya.

Sunting: Saya menjalankan Archlinux. Tidak dapat mengatakan apakah ini akan berfungsi pada Windows.

Jesse
sumber
Di Linux Mint (setq x-select-enable-clipboard nil)cukup juga karena ada +dan *register untuk bekerja dengan os clipboard, sayangnya tidak di bawah windows.
Kossak
Saya mencoba fungsi khusus Anda (di windows) dengan plugin jahat dan (setq x-select-enable-clipboard nil): Yanking FROM os clipboard berfungsi sebagaimana mestinya, tetapi saya tidak dapat mencabut pilihan UNTUK os clipboard (dengan binding (define-key evil-normal-state-map (kbd "C-y") 'paste-from-clipboard)dan(define-key evil-visual-state-map (kbd "C-y") 'paste-from-clipboard)
Kossak
Saya tidak yakin apakah saya mengerti maksud Anda, paste-from-clipboardhanya akan menempel dari clipboard. Anda membutuhkan fungsi lain untuk menyalin ke clipboard. Saya mengedit pertanyaan untuk menambahkan copy-to-clipboardfungsi. Silakan coba jika berhasil
Jesse
Saya salah mengira yankfungsi menyalin ke dan dari os clipboard (berdasarkan keberadaan pemilihan visual). Fungsi Anda yang lain melakukan apa yang saya inginkan, terima kasih.
Kossak
2

https://github.com/rolandwalker/simpleclip

itu mencakup SEMUA kasus penggunaan di Mac / Linux / Windows / Cygwin.

Lebih khusus lagi, untuk salin & tempel, hanya ada dua perintah:

simpleclip-get-contents
simpleclip-set-contents

Jangan ragu untuk menetapkan kunci pendek.

chen bin
sumber
Ini luar biasa, ini menyederhanakan interaksi dengan clipboard secara drastis.
loevborg