"Diff-mode" da "show-trailing-whitepace" i geçersiz kıl


9

Ben var show-trailing-whitespaceayarlı tbenim de global olarak .emacsdosyaya ve bu genellikle ben olduğumda haricinde bir sorun değildir diff-modeboş bağlam hatları için zorunlu sondaki boşluk olan bir yama bakıyor.

Bir çözüm basitçe kapatmak olacaktır show-trailing-whitespaceiçinde diff-modegerekli bazı kanca, ama aslında hala göstermek için değişiklik hatlarında sondaki boşlukları için istiyorum. Örneğin, yanlışlıkla beyaz boşluk bıraktıysam veya kaldırırsam, sorun değil ve yine de bunun trailing-whitespaceyüzüne görünmesini istiyorum . Ben boş bağlam çizgilerinin farklı beyaz alan olarak ele alınmasını istemiyorum çünkü diff formatının kendisi için gerekli.

İşte aldığım geçerli davranışa bir örnek:

resim açıklamasını buraya girin

Ve ben bunu istiyorum:

resim açıklamasını buraya girin

İşte başka bir örnek, ama bu sefer, gerçek boşluk eklenmesi ile:

resim açıklamasını buraya girin

Ancak show-trailing-whitespacetamamen devre dışı bırakırsam diff-mode, hiç koyu kırmızı görmezdim. Bunun yerine, istediğim bu:

resim açıklamasını buraya girin

Temel olarak, bunun show-trailing-whitespacesadece tek bir alana sahip farklı çizgilerin özel olduğunu fark etmeyi içerdiğini düşünüyorum .


3
Bunu tamamen farklı modda tamamen devre dışı bırakmak istediğinizden emin değil misiniz? Sondaki boşlukları yanlışlıkla eklediyseniz veya kaldırdıysanız, farklı mod, emacs yapılandırmanızdan bağımsız olarak (dosyada bir değişiklik olması nedeniyle) bunu vurgulamaz mı?
Malabarba

Kırmızı boşluk yazı tipinde sondaki boşlukları görmek istiyorum. Diğer insanlar için yararlı olabileceğinden, farklı modda devre dışı bırakmak için bir cevap eklemekten çekinmeyin, ancak tam olarak aradığım şey bu değildi.
b4hand

1
Dif-modun kendi vurgulama yüzünün beyaz boşluk modunun kırmızıya benzer bir şeye ayarlanması tatmin edici olur mu?
Malabarba

Yanıtlar:


1

Bir çözüm, Diff modunda İzleyen boşluk modunu kapatmak ve bunun yerine görmek istemediğiniz izleyen boşluk için kendi özel yazı tipi kilit kurallarınızı tanımlamaktır.

(defvar diff-trailing-whitespace-keywords
  '(("^[+-<>]\\(.*\\S \\)?\\(\\s +\\)$" (2 'trailing-whitespace t))))
(defun diff-mode-font-lock-add-trailing-whitespace ()
  (setq diff-font-lock-keywords-and-whitespace
    (append diff-font-lock-keywords
        diff-trailing-whitespace-keywords))
  (setcar diff-font-lock-defaults 'diff-font-lock-keywords-and-whitespace))
(defun turn-off-trailing-whitespace ()
  (setq show-trailing-whitespace nil))
(add-hook 'diff-mode-hook 'turn-off-trailing-whitespace)
(eval-after-load "diff-mode" '(diff-mode-font-lock-add-trailing-whitespace))

2

Değeri show-trailing-whitespacesadece ilgili kanca bunu ayarlayabilirsiniz böylece ayarlandığında yerel tampon haline gelir:

(add-hook 'diff-mode-hook (lambda () (setq show-trailing-whitespace nil)))

Gösteri sondaki-boşluk belgelerine denetlemek için: C-h v show-trailing-whitespace.


2
Ancak bu, tüm tampon için modu kapatır, bu da b4hand'in kaçınmak istediği şeydir.
Gilles 'SO- kötü olmayı bırak'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.