Respostas:
O Magit não suporta isso atualmente, mas deve ser factível. Provavelmente farei isso em breve. Às vezes eu também poderia usar esse recurso.
Enquanto isso usar uma macro para substituir os +
s depois de arrancar: <f3> C-d C-n <f4>...
.
cua-rectangle-mark-mode
de dentro do buffer magit?
cua-rectangle-mark-mode
em outro buffer (não magit) após puxar o texto.
C-a
C-f
C-x C-x
C-x r d
.
Até que o Magit suporte algo assim, é fácil obter um comportamento personalizado com um comando. Eu tenho algo semelhante ao seguinte comando na minha configuração. Se você chamá-lo com um argumento de prefixo, ele removerá os principais marcadores diff.
(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))))))
Edit : Com a versão de desenvolvimento do Magit (que será a v2.91.0), você pode remover os marcadores diff, marcando uma região de um pedaço e chamando magit-copy-section-value
com um argumento de prefixo.
Seguindo a resposta de Kyle Meyer, se você deseja copiar o diff sem precisar pressionar a tecla de prefixo, pode usar o seguinte:
(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) Selecione apenas "+" (uma coluna) e pressione Del para excluir todos os símbolos "+"