Идентифицировать файлы в VC в Emacs Dired

С .emacs, содержащим:

(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)

Я могу легко идентифицировать файлы из каталогов (не глядя на флаг «d»).

Я хотел бы отличить файлы, которые находятся под контролем версий, от тех, которые не находятся под контролем.

Проведя довольно много времени с модами SVN и git Emacs, я сделал вывод (возможно, поспешно), что они не готовы к прайм-тайму, или по крайней мере базовые вещи остаются необходимыми для выполнения из командной строки (а так проще все делать из командной строки), но это особенно надоедливо.

Можете ли вы предложить облегченный метод для различения файлов под ВК? (или, если не легковес, предоставить подходящий .emacs конфиг?)


1
121
1

Ответ:

Решено

Я думаю, что пакет diff-hl может быть тем, что вы ищете. Он помечает не только файлы, которые были изменены, но и файлы, которые не находятся под контролем VC (в каталоге, контролируемом VC).

Установите его как обычно (M-x package-install RET diff-hl), а затем в файле инициализации:

(global-diff-hl-mode)     ; enables diff-hl for all buffers
(diff-hl-flydiff-mode)    ; diff-hl marks changes on the fly
(add-hook 'dired-mode-hook 'diff-hl-dired-mode)  ; adds diff-hl for dired mode

Вам также нужно включить fringe-mode, чтобы заставить его работать, но я думаю, что Emacs поставляется с предустановленным. Вы можете использовать меню Options > Show/Hide > Fringe, чтобы проверить, установлен ли край на что-то другое, кроме Никто.

Да, и когда дело доходит до поддержки VC (по крайней мере, Git), я нахожу magit удовлетворительным. Это слишком сложно для моих нужд (и я до сих пор не понял, как клонировать или инициализировать репозиторий, поэтому я использую dired и запускаю git init или clone на . — текущий каталог), но это реально и работает.