回答:
Magitは現在これをサポートしていませんが、できるはずです。私はおそらくそれをすぐにやります。私も時々その機能を使うことができました。
一方、マクロを使用して、+
ヤンク後にsを置き換えます<f3> C-d C-n <f4>...
。
cua-rectangle-mark-mode
magitバッファ内から使用できませんか?
cua-rectangle-mark-mode
テキストをヤンクした後、(magitではなく)別のバッファーで使用します。
C-a
C-f
C-x C-x
C-x r d
。
Magitがこのようなものをサポートするまで、動作はカスタムコマンドで簡単に取得できます。構成に次のようなコマンドがあります。前置引数を付けて呼び出すと、先頭の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))))))
編集:Magitの開発バージョン(v2.91.0になる予定)では、ハンクの領域をマークmagit-copy-section-value
し、プレフィックス引数を使用して呼び出すことで、差分マーカーを取り除くことができます。
カイルマイヤーの答えから離れて、プレフィックスキーを押す必要なしに差分をコピーしたい場合は、以下を使用できます:
(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)「+」のみ(1列)を選択し、Delキーを押してすべての記号「+」を削除します