Pertanyaan perintah emacs untuk menambahkan cincin


Bagaimana saya bisa membuat perintah emacs untuk menyalin teks (ke ring kill) dengan menambahkan? (Kenapa tidak ada perintah built-in seperti itu?)

Menuntut Tewas menyebutkan C-M-w (`append-next-kill ') yang memungkinkan saya untuk menambahkan perintah kill seperti C-d atau C-k. Tapi itu untuk membunuh teks daripada menyalinnya.


5
2017-11-25 01:23


asal


Jawaban:


Sebenarnya, ada perintah yang dibangun seperti itu. C-M-w akan menambahkan salinan berikutnya serta membunuh. Jadi Anda akan menandai wilayah yang ingin Anda salin, lalu ketik C-M-w diikuti oleh M-w dan selanjutnya C-y akan mencabut pembunuhan yang bergabung.


7
2017-11-25 04:56



Mainkan dengan variasi ini di file .emacs Anda ...

(defun append-kill-line (&optional arg)
  "Append kill-line to current kill buffer, prefix arg kills from beginning of line."
  (interactive "P")
  (append-next-kill)
  (kill-line arg)
)

(define-key global-map "\C-x\C-m" 'append-kill-line)

3
2017-11-25 03:34



Dapat melampirkan-mendaftar untuk memenuhi kebutuhan Anda?


2
2017-11-25 01:54



Berbagai perintah membunuh menggunakan sedikit trik untuk memutuskan apakah akan ditambahkan atau tidak. Jika perintah sebelumnya sama dengan perintah saat ini, perintah itu akan ditambahkan; jika tidak, tidak. Fungsi menggunakan nilai last-command untuk melakukan ini, dan memanipulasi nilai ini adalah kunci untuk mendapatkan apa yang Anda inginkan.

(defun copy-region-as-kill-append (beg end)
  (interactive "r")
  (let ((last-command 'kill-region))
    (copy-region-as-kill beg end)))

1
2017-11-25 12:04