2014-05-11 13 views
5

Tôi đang cố thực hiện các thao tác sau: sao chép vùng được chọn hiện tại hoặc một dòng (nếu không có lựa chọn) và nhận xét vùng gốc với sự trợ giúp của comment-or-uncomment-region-or-line.Emacs sao chép vùng/dòng và nhận xét cùng một lúc

Tôi figured tôi có thể sử dụng kill-region theo sau là yank nhưng sau đó lựa chọn ban đầu của tôi bị mất, vì vậy tôi không thể bình luận. Nếu mặt khác tôi bình luận đầu tiên tôi sẽ nhận được cả hai bản sao của khu vực của tôi nhận xét.

Ý tưởng khác tôi có (tôi nghĩ là tốt hơn vì tôi sử dụng chế độ ác) là sử dụng evil-yank và sau đó evil-visual-restore để khôi phục lựa chọn để tôi có thể nhận xét. Nhưng tôi không thể tìm ra đối số nào để chuyển đến evil-yank để chỉ định khu vực đã chọn.

Tôi thiếu gì ở đây?

Trả lời

5

Điều chính bạn đang thiếu là chức năng copy-region-as-kill.

(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

Cảm ơn! Làm thế nào tôi có thể di chuyển một dòng xuống sau này? Tôi đã cố gắng (tiếp theo dòng 1), nhưng nó dường như không hoạt động vì một lý do nào đó. – egdmitry

+0

Xem chức năng 'forward-line'. – Drew

+0

Nó cũng không hoạt động. Tôi nghi ngờ nó liên quan đến chế độ ác, nếu tôi chọn khu vực với 'V',' forward-line' không hoạt động. – egdmitry

Các vấn đề liên quan