Ben bu bulamıyorum: Nasıl yerine EMACS'in bir TAB 4 ALANLAR kullanabilirim?

5 Cevap php

Ben EMACS'in için atlamayı yapıyorum ve ben AND all other modes 4 boşluk yerine TAB eklemek için php-mode almak için benim .emacs dosyasında yapmanız gereken bulamıyorum. Yardım?

GÜNCELLEME:

Ben sekmesini vurduğunda ben hala verilen cevaplar ile düz bir dosyada 8 boşluk olsun. Php-modu hala 2 boşluk olsun. Php modunda sekmesini vurmak hiçbir şey yapmaz, düzenli EMACS'in sekmesi 8. boşluk ekler.

Update2:

Bu benim .emacs ne var:

(require 'color-theme)
(color-theme-calm-forest)

(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq c-basic-offset 4)

Hala düzenli dosyaları 8 alanlarda ve PHP sekme çalışmıyor dosyaları, ya da şimdi etrafında rasgele atlar. Benim php-mode Ubuntu 9.10 apt-get install php-mode olduğunu


UDATE3:

Tamam İşte ben istiyorum ne ...

  1. Ben TAB tuşuna bastığımızda, ve ben hep TAB tuşuna bastığımızda, ben 4 bosluk istiyorum.
  2. Ben TAB tuşuna (yine MEKANLARI girerek, son satıra otomatik sekme kadar) önceki satıra göreli konumuna atlamak istiyor

Gerekli gerek ilk ve en önemli (metin) ve PHP dosyaları için geçerli eğer bu kurallar all files uygulamak gerekir ama.

5 Cevap

Nil değişken girinti-tabs-modunu değiştirin. Sen M-x set-variable tarafından (sadece bir tampon için) etkileşimli yapabilirsiniz. Kalıcı (ve tüm tamponlar için) yapmak için, koymak

 (setq-default indent-tabs-mode nil)

init dosyasında.

Sekme en modlarda sadece 4 alanlarda, aynı zamanda eklerim yapmak

 (setq-default tab-width 4)

(PHP gibi) C tabanlı modlar için yapmanız gerekir:

(setq c-basic-offset 4)

Bir (setq c-temel girinti 4) kaçırıyorsun. Yani sahip olmalıdır:

;; 4 spaces rather than tabs
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq c-basic-offset 4)
(setq c-basic-indent 4)

Burası önemli modu (o büyük en önemli işin biri tarafından tarif girinti kurallara dayalı karar olduğu (programlama modlarında) Emacs TAB varsayılan davranışı, the right place için otomatik girinti olduğunu -mod, aslında, renk vurgulama) göre genel olarak çok daha zorlu. Hat zaten doğru yere girintilenir Tabii ki, TAB vurarak bir şey yapmayacağım.

So you can force TAB to behave in a dumb way, like you're asking, but then you'd miss out on most of the fun. E.g. you could do something like

(global-set-key "\t"
  (lambda ()
    (interactive)
    (let ((prevline-indent (save-excursion (forward-line -1) (current-indentation))))
      (if (< (current-column) prevline-indent))
          (indent-to prevline-indent)
        (insert "    ")))))

Ama onun yerine, ben sekme Emacs amaçlanan şekilde kullanmak ve size kod girintili olmak ister nasıl Emacs açıklamak öneririz. Muhtemelen gibi bir şey ayarlayarak:

(setq-default indent-tabs-mode nil) ;; Prefer SPC over TAB when indenting.
(setq c-basic-offset 4)             ;; I like indenting by 4 spaces.

Ne demek itibaren, php-modu TAB girinti doğru çalışmıyor, bu yüzden sadece php-modunda bir hata olabilir. Bu yanlış girintili alır metnini gösteren, doğru çalışma ve girinti beklentilerinize eşleşmiyor hangi yolu açıklayan olmadığı tam olarak hangi durumda bize söyleyin.

Sen M-x untabify alanlarda tüm sekmeleri dönüştürmek için kullanabilirsiniz.

Peki bu durumda size php küçük modu için indent-tabs-mode nil arasında bir değer ayarlayabilirsiniz.

Ayrıca wiki bulabilirsiniz: http://www.fnal.gov/docs/products/emacs/emacs/emacs_23.html#SEC185 ve Jamie Zawinski sonrası: http://www.jwz.org/doc/tabs-vs-spaces.html bilgilendirici olmak.

Bu benim yaptığım budur.

;;;; Tab settings ;;;;
;Tab width is 3
(setq tab-width 3)
(setq-default tab-width 3) ;;going to force it. yessir.
;Use spaces always.
(setq-default indent-tabs-mode nil)
;Jump by 3.
(setq c-basic-offset 3)
;this defaulted to 4 and had to be reset to 3. the prior settings did not override it. Lame.
(setq perl-indent-level 3)
;Tab stop list out to col 60
;Manually set by x3
(setq tab-stop-list '(3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60))