Emacs 如何删除Magit中一个大块头的尾随空格?

Emacs 如何删除Magit中一个大块头的尾随空格?,emacs,whitespace,magit,Emacs,Whitespace,Magit,Emacs(后v21)包含一个从文件中删除的函数。我如何在Magit暂存区(从Magit status)中使用delete training whitespace),以便从单个大块或整个文件中删除尾部空白?这是Sean的片段,针对Magit v2进行了调整: (defun my-magit-delete-trailing-whitespace-from-file () "Remove whitespace from the current file." (interactive) (

Emacs(后v21)包含一个从文件中删除的函数。我如何在Magit暂存区(从
Magit status
)中使用
delete training whitespace
),以便从单个大块或整个文件中删除尾部空白?

这是Sean的片段,针对Magit v2进行了调整:

(defun my-magit-delete-trailing-whitespace-from-file ()
  "Remove whitespace from the current file."
  (interactive)
  (save-excursion
    (magit-diff-visit-file-worktree (magit-file-at-point))
    (delete-trailing-whitespace)
    (save-buffer)
    (kill-buffer))
  (magit-refresh))

谢谢@tarsius的精彩表演!我设法对它进行了调整,删除了点处线条的尾随空格。这需要安装“ws-trim”软件包

(defun my-magit-delete-trailing-whitespace ()
  "Remove whitespace from the current file."
  (interactive)
  (save-excursion
    (magit-diff-visit-file-worktree (magit-file-at-point))
    (ws-trim-line nil)
    (save-buffer)
    (kill-buffer))
  (magit-refresh))

(add-hook 'magit-status-mode-hook
 (lambda ()
   (local-set-key [deletechar] 'my-magit-delete-trailing-whitespace)))

我正在绑定delete键,因为它在
magit状态模式下没有任何有用的功能

现在,我尝试了
magit
。我猜你可以编辑这些差异看起来不太好。这种方法适用于
ediff
-补丁,但不适用于git。因此,我将删除我的答案。对此我很抱歉。这里是Magit维护人员。Magit不支持这一点。@Tobias不用担心,正如我所记得的,你仍然是对的,我可以直接从Magit中找到文件。从这里开始,它是一个非常简单的函数调用。@tarsius还没有;)我有一个工作函数;我只是不能把它挂在雕像模式地图上。至少,从当前选择的文件来看:谢谢你的更新。有没有办法把这个限制在大块头身上?magit状态下的覆盖层是否有关于这个大块头来自哪里的信息?如果是这样,您可以使用该信息在删除空白之前缩小范围。对于大块部分
(magit section value(magit current section))
将返回类似
(“(defun module rebuild()”-73,6“+73,8”)