2009-11-25 11 views
5

Come posso creare un comando emacs per copiare il testo (sull'anello di uccisione) aggiungendo? (Perché non esiste un comando integrato di questo tipo?)comando emacs da aggiungere all'anello

Appending Kills menziona C-M-w (`append-next-kill ') che consente di aggiungere comandi di uccisione come C-do C-k. Ma è per uccidere i testi invece di copiarli.

risposta

6

In realtà, v'è una tale costruito nel comando. C-M-w aggiungerà una copia successiva e un kill. Quindi contrassegnare la regione che si desidera copiare, quindi digitare C-M-w seguito da M-w e il successivo C-y eseguirà lo yank delle uccisioni congiunte.

2

È possibile aggiungere il registro alle richieste?

3

Gioca con una variazione di questo nel vostro file .emacs ...

(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) 
1

I vari comandi di eliminazione utilizzano un piccolo trucco per decidere se aggiungere o meno. Se il comando precedente è uguale al comando corrente, verrà aggiunto; se no, non è così. Le funzioni utilizzano il valore di last-command per eseguire questa operazione e la modifica di questo valore è la chiave per ottenere ciò che si desidera.

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