2010-12-08 19 views
10

Emacs'te otomatik girintiyi global olarak veya yalnızca bazı modlarda nasıl devre dışı bırakabilirsiniz?Tüm dünyada otomatik girintiyi Emacs olarak devre dışı bırak

RubyOnRails (ruby, html, js, css) için yüklü birkaç paketim var.

Diyelim ki css modu için autoindent'i devre dışı bırakmak istiyorum.

+3

Varsayılan olarak otomatik girinti yoktur. Bence ilk önce sorunuzu açıklığa kavuşturmalısın. –

cevap

3

electric sözcüğünü içeren değişken adlarını aramak isteyebilirsiniz. (Bu özel görünür karakterlerle yazıldığı zaman otomatik olarak gerçekleşir eylemler için ortak Emacs parlance budur.) Bu durumda

, Mxapropos-variableRETelectricRET listesini içeren bir css-electric-keys değişken olduğunu bana gösteriyor Yeniden girintiyi tetiklemesi gereken kendiliğinden yerleştirme tuşları.

Sen nil için bu listeyi ayarlamak için M-xcustomize-variableRETcss-electric-keysRET kullanmak veya init dosyasına (setq css-electric-keys nil) ekleyebilir.

Bazen elektriksel davranışları uygulamak için küçük bir mod kullanılır, böylece bunları daha kolay açıp kapatabilirsiniz. Bunlar büyük olasılıkla RETaracılığıyla Mxapropos-commandRETelectricbulunacağını ve muhtemelen elektrik minör modu buna benzer bir şekilde, özürlü olmasını sağlamak için önemli bir mod kanca kullanırsınız:

(add-hook 'MAJORMODE-mode-hook 'my-MAJORMODE-mode-hook) 
(defun my-MAJORMODE-mode-hook() 
    (ELECTRICMODE-mode 0)) 
+0

Son ELECTRICMODE modu örneğinizde hangi terimleri kullanacağınızı nasıl anlarsınız? JavaScript dosyalarında otomatik girişleri kapatırken sorun yaşıyorum ve ne yazık ki JS için diğer önerilerinizle hiç şansım olmadı. – Malvineous

+4

En iyi önerim, Emacs'ın kendi kendini belgeleyen niteliği ve bu tesis etrafında dönen komutlarla olabildiğince aşina olmaktır. Javascript modu için, onu tanımlayan kaynak dosyayı açmak için 'Mx find-function RET javascript-mode RET' kullandım ve daha sonra sadece 'auto' aradı ve bu değişkene uygun bir isabet buldu:' Ch v js-auto- girintili bayrak RET '(ki bu özelleştirilebilir olur, bu yüzden de' Mx özelleştirme-grubu RET js RET '("javascript") daha iyi olurdu, ancak "js" kullanarak oldukça bulabilirdiniz, oldukça açık bir ikinci tahmin oldu – phils

+0

Benzer şekilde, 'Mx apropos değişken RET girintisi RET' (mod yüklendikten sonra) 'js-auto-indent-flag' değişkenini keşfeder.Genel bir öneri olarak, kılavuzun okunması yararlı olabilir. Yardım bölümü: 'M-: (bilgi" (emacs) Yardımı ") RET '- Böyle bir şeyi nasıl bulacağınıza dair iyi bir tanıtıma sahip olduğunuzda, kişiselleştirme işlemi çok daha kolay bir süreç haline gelir. – phils

1

Benim için emacs 24.x, Mxelectric-indent-mode, devre dışı bırakmak istediğim davranışı değiştirdi.

FWIW, davranış RET Diğer şeylerin yanı sıra ... simple.el tanımlanan komuta newline bağlı olmasıydı, o komutun davranışı electric-indent-mode tarafından değiştirilir.

+0

Bir dahaki sefere giriş anahtarım yok İstediğimi yap, ben sadece hangi fonksiyona/komuta bağlı olduğunu görmek için 'Ch k RET' hatırlayacağım. – daveloyall

İlgili konular