2010-11-14 16 views

Odpowiedz

157

js-indent-level może być używany w domyślnym trybie javascript, który jest domyślnie włączony w emacs 23.2.

(setq js-indent-level 2) 

powinien zrobić to, czego szukasz. Jeśli używasz starszej wersji emacs, możesz być w trybie java. Myślę, że ten tryb odpowiada na c-basic-offset, jednak mogę się mylić.

+0

Perfect. Dzięki za szybką odpowiedź. – mksuth

+2

(setq default-tab-width 2) byłby odpowiadającym ustawieniem szerokości tabulatora dla trybu java. – Fergie

+0

Używając tego mechanizmu, szerokość zakładki pozostaje przy 8, więc zakładki są używane tylko wtedy, gdy poziom wcięcia wynosi 4 (2x4 = 8) lub więcej. Jak ustawić szerokość karty na 2 lub 4, aby używać kart zamiast spacji? Próbowałem wielu ustawień, np. (setq tab-width 4), ale bez skutku. Mój cel: użyj szerokości karty 4 i używaj tylko znaków tabulacji (zamiast spacji jako zamiennika). – jdp

58

Szkoda, że ​​ktoś wcześniej nie powiedział mi o Customu! Może to pomoże innym zwykłego śmiertelnika jak ja;)

Invoke Custom:

M-x customize 

Następnie wybierz "Programowanie", a następnie "Języki", a następnie wybierz język/tryb dostosowywania. Edytuj opcje według własnego uznania. Po zakończeniu wybierz "Zapisz dla bieżącej sesji" lub "Zapisz dla przyszłych sesji".

+2

To jest niesamowite. Używam emacs przez 5 lat bez natknięcia się na to. Wielkie dzięki! – zachaysan

+1

Dzięki @wprl! --- _a mortal_ – daveagp

+1

To jest niesamowite! –

2

W moim pliku javascript.el (/ usr/share/emacs/site-lisp) znalazłem

javascript-indent-level 4

Więc jeśli używasz tego samego lisp-mode co możliwe zmienić uruchamiając

(setq javascript-indent-level 2) 
11

kupili także ustawić emacsowi używać spacji zamiast kart

(setq-default indent-tabs-mode nil) 
+0

To jest bardziej komentarz niż aktualna odpowiedź. Zdobądź więcej reputacji, aby móc komentować. – jcubic

13

Jeśli używasz JS2-mode (który jest mocniejszy IMHO), a następnie polecenie brzmi:

(setq-default js2-basic-offset 2) 

Source.

2

Można również użyć

M-x customize-variable 

i wpisz

js-indent-level 

(js- [TAB] pokazuje listę opcji). Następnie zmień żądaną Js Indent Level i kliknij [State:] i zapisz.

0

Korzystanie z EditorConfig może być dobrym pomysłem. I oczywiście, Emacs miał tryb dla niego editorconfig-emacs.

Jest również dostępny w menedżerze pakietów (M-x package-list-packages) za pośrednictwem Melpa lub Marmalade.

1

Jeśli chcesz zmienić go na podstawie na plik, umieścić to na górze pliku:

// -*- mode: js; js-indent-level: 2; -*-