2014-05-11 22 views
5

Aşağıdakileri uygulamaya çalışıyorum: seçili bölgeyi çoğaltın veya bir satır varsa (seçim yoksa) ve orijinal bölgeyi comment-or-uncomment-region-or-line yardımıyla yorumlayın.Emacs bölge/satıra kopyalayın ve aynı anda yorum yapın

kill-region ardından yank kullanabileceğimi düşündüm ancak daha sonra orijinal seçimim kayboldu, bu yüzden yorum yapamıyorum. Öte yandan önce yorumda bulunursam, bölgemin her iki kopyasının da yorumlanmasını sağlayacağım.

Sahip olduğum diğer bir fikir (kötülük modunu kullandığım için daha iyi olduğunu düşünüyorum) seçimi geri yüklemek için evil-yank ve ardından evil-visual-restore kullanmaktır. Ancak, seçilen bölgeyi belirtmek için hangi argümanların evil-yank'a geçtiğini anlayamıyorum.

Burada nelerin eksik?

cevap

5

Kayıp olan ana şey, copy-region-as-kill işlevidir.

(defun copy-and-comment-region (beg end &optional arg) 
    "Duplicate the region and comment-out the copied text. 
See `comment-region' for behavior of a prefix arg." 
    (interactive "r\nP") 
    (copy-region-as-kill beg end) 
    (goto-char end) 
    (yank) 
    (comment-region beg end arg)) 
+0

Teşekkürler! Bundan sonra bir satırı nasıl indirebilirim? Denedim (sıradaki 1), ama bir nedenden dolayı işe yaramıyor. – egdmitry

+0

'forward-line' işlevine bakın. – Drew

+0

Aynı zamanda işe yaramıyor. Kötü mod ile ilgili olduğundan şüpheleniyorum, eğer bölgeyi V ile seçersem, ileriye doğru ilerlemez. – egdmitry