Как я могу удалить конечные пробелы из куска в Magit?

Emacs (пост v21) включает в себя функцию удаления конечных пробелов из файла. Как бы я сделал delete-trailing-whitespace доступно в области постановки Magit (от magit-status) чтобы я мог удалить конечные пробелы из отдельных фрагментов или целых файлов?

2 ответа

Решение

Это фрагмент Шона, настроенный для 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)))

Я связываю ключ удаления, так как он не используется ни для чего полезного в magit-status-mode,

Другие вопросы по тегам