Elektrikli girinti modunu yalnızca bir mod için devre dışı bırakma (lateks modu)


11

Lateks modunda elektrikli girinti modunun çalışma şeklini sevmiyorum. Başka her yerde (en azından kullandığım her yerde), harika.

Elektrikli girinti modunu yalnızca lateks modu için kalıcı olarak nasıl devre dışı bırakabilirim, ancak diğer her yerde nasıl saklayabilirim?

Yapılandırma dosyamda tek satırlık bir lisp hack'i veya bunun gibi bir şey olduğunu tahmin ediyorum, ancak lisp'e karşı korkunçum, bu yüzden anlayamıyorum.

Yanıtlar:


8

İhtiyacınız olan komut electric-indent-local-mode. Bu dosyayı el çağırarak herhangi tampon elektrik-girinti-mod kapatmak için kullanabilir: M-x electric-indent-local-mode. Bu bir geçiştir, bu yüzden aynı arabellekte tekrar çağırmak tekrar açar.

Bunu init dosyanızdan otomatik olarak yapmak için bir kanca ayarlamanız gerekir. İlk olarak, kancayı tanımlayın:

(defun remove-electric-indent-mode ()
  (electric-indent-local-mode -1))

Ardından uygun mod kancalarına ekleyin. AUCTex tarafından sağlanan LaTeX modu için elektrikli girinti modunu kapatmak için şunu kullanın:

(add-hook 'LaTeX-mode-hook 'remove-electric-indent-mode)

Varsayılan metin modu için şunu kullanın:

(add-hook 'tex-mode-hook 'remove-electric-indent-mode)

Aynı desen elektrik girintisini kapatmak istediğiniz diğer modlar için de geçerlidir.

Mod kancaları hakkında daha fazla bilgi için yerleşik Emacs manuel düğümüne bakın [(emacs) Hooks][1]. Oraya Emacs'tan şu adresten ulaşabilirsiniz C-h i r m Hooks <enter>: C-hyardım iiçin, bilgi riçin, kılavuzu okumak için, mmenü öğesi Hooksiçin ve menü öğesini seçmek için. (veya html sürümünü görmek için yukarıdaki bağlantıyı takip edebilirsiniz).


Ek bir işlev tanımlamanız gerekmez: (add-hook 'LaTeX-mode-hook (lambda () (electric-indent-local-mode -1)))yeterli.
Emil Jeřábek

Doğru, ancak bir işlev tanımlarsanız, kodu çoğaltmadan birden çok farklı kancada yeniden kullanabilirsiniz. Tanımlı bir işlevi kaldırmak, anonim bir işlevden daha kolaydır. Hata ayıklama sırasında faydalı olabilir
Tyler
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.