Emacs'ın bir dosyadaki son satırsonu görüntüsünü nasıl engelleyebilirim?


11

Vim'in tuhaflıklarından biri, dosya yeni satır karakteri ile bitiyorsa, dosyanın sonunda boş bir satır göstermemesidir. Dosya Bu şekilde, gelmez bir yeni satır ile sona, ekran aynıdır, yalnızca bir [noeol]kipsatırında işaretleyici.

Öte yandan Emacs, dosya bir satırsonu ile bitiyorsa ve aksi takdirde son satırı görüntüler.

Emacs'ın davranışı temelde daha mantıklı olsa da, daha iyisi ya da daha kötüsü için, eskisine alıştım.

Dosyanın yeni satırın sonlandırılmasını gerektirirken, son boş satırın görüntülenmesini bastırmanın herhangi bir yolu var mı?

Emacs yeni satır davranışı

Ekran görüntüsü üç pencere gösterir (çok küçükse resmi yeni sekmede görüntüle):

  1. Soldaki büyük emacs penceresi hexl-mode, dosyanın sonunda gerçekten bir satırsonu olduğunu gösterir (0a, imlecin bulunduğu konum).

  2. Emacs penceresi sağ üstte, imleç boş üçüncü satırda.

  3. Vim penceresini sağ altta, imleç son metin satırında olacak. Dosya yeni [noeol]satırla bitse bile imleç bu noktanın altına taşınamaz ( vim durum satırında işaretçi yoktur ).


Yeni satır nasıl görüntülenir? Etkinleştirilmiş bazı küçük modunuz olduğu için mi görüntüleniyor? Kurulumunuzdan son satırları gösteren bir pasaj koymak yararlı olacaktır. Bunun bir ekran görüntüsü de yararlı olacaktır.
Kaushal Modi

2
"Görüntülü reklamcılık" ile, yeni satırın görsel bir temsili olduğu anlamına gelmez. Yani imlecimi o satıra taşıyabileceğim.
sykora

Çoğaltılamıyor: imgur.com/IAoV7p9 ile aynı davranış emacs -Q, init dosyanızda bir şey olmalı.
T. Verron

Veya bekleyin ... yani çizgi var olsa bile, bu çizgiye geçmek istemediğiniz anlamına mı geliyor? İkinci olarak @ kaushalmodi, vim ve emacs davranışının ekran görüntüleri yararlı olacaktır.
T. Verron

3
@sykora Lütfen minimum ekran görüntüsü kullanmaya çalışın . Bir yoktur sürü ekran görüntüsünde aşırı ve gereksiz boş alan o neler olduğunu görmek için çok küçük olduğundan, neredeyse yararsız küçük resim bir hale getiren olması gerekenden daha çok daha büyük hale. Ekran görüntüsü alırken, lütfen pencereleri içeriklerine uyacak şekilde yeniden boyutlandırın.
lunaryorn

Yanıtlar:


1

Bunu uygulamak için korkunç bir öneri vereyim :

(defun make-eof-intangible ()
  (interactive)
  (add-hook 'post-command-hook (lambda ()
                                 (when (and (equal (point) (point-max))
                                            (looking-back "\n"))
                                   (backward-char))) t t))

(Yerel bir kanca kullanıyorum, çünkü küresel olarak ayarlamanın, işleri ciddi şekilde karıştırabileceğinden şüpheleniyorum, bu yüzden arabellek temelinde daha iyi etkinleştirin)


1

Bunlar muhtemelen tam olarak istediğiniz şey değildir, ancak yararlı olabilir.

  • linum-modeTüm tamponlarımda küçük modu kullanıyorum ( (global-linum-mode t)init dosyanızda ayarlanmış ). Bu, yalnızca sonunda yeni satır karakteri olan satırlar için satır numaralarını gösterir.

  • Hoşunuza gidebilecek başka bir şey etkinleştirmektir whitespace-mode, varsayılan olarak bu $boş satırlarda gri işaretler gösterir , böylece hangi satırların boş olduğunu görmenizi sağlar. Buradaki Emacs Wiki sayfasına bakın .

  • Benzer şekilde, ayar indicate-empty-linesiçin tson çizgidir konumları gösterir (bkz burada saçak göstergeler için kılavuza ).

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.