Câu trả lời:
Magit hiện tại không hỗ trợ, nhưng nó có thể thực hiện được. Có lẽ tôi sẽ làm điều đó sớm thôi. Đôi khi tôi cũng có thể sử dụng tính năng đó.
Trong khi đó, sử dụng macro để thay thế +
s sau khi kéo dài : <f3> C-d C-n <f4>...
.
cua-rectangle-mark-mode
từ trong bộ đệm magit?
cua-rectangle-mark-mode
trong một bộ đệm khác (không phải magit) sau văn bản yank.
C-a
C-f
C-x C-x
C-x r d
.
Cho đến khi Magit hỗ trợ một cái gì đó như thế này, hành vi dễ dàng nhận được bằng một lệnh tùy chỉnh. Tôi có một cái gì đó tương tự như lệnh sau trong cấu hình của tôi. Nếu bạn gọi nó bằng một đối số tiền tố, nó sẽ loại bỏ các dấu khác biệt hàng đầu.
(defun km/magit-copy-region-hunk (&optional no-column)
(interactive "P")
(when (magit-section-internal-region-p)
(magit-section-when hunk
(deactivate-mark)
(let ((text (buffer-substring-no-properties
(region-beginning) (region-end))))
(kill-new (if no-column
(replace-regexp-in-string "^[ \\+\\-]" "" text)
text))))))
Chỉnh sửa : Với phiên bản phát triển của Magit (phiên bản v2.91.0), bạn có thể loại bỏ các điểm khác biệt bằng cách đánh dấu một vùng của một hunk và gọi magit-copy-section-value
bằng một đối số tiền tố.
Từ bỏ câu trả lời của Kyle Meyer, nếu bạn muốn sao chép diff mà không cần nhấn phím tiền tố, bạn có thể sử dụng như sau:
(defun copy-diff-region ()
"Copy diff region without + or - markers."
(interactive)
(deactivate-mark)
(let ((text (buffer-substring-no-properties
(region-beginning) (region-end))))
(kill-new (replace-regexp-in-string "^[\\+\\-]" "" text))))
<C-return>
(cua-set-rectangle-mark
), 3) Chỉ chọn "+" (một cột) và nhấn Del để xóa tất cả các ký hiệu "+"