Emacs javascript modunda girinti genişliği nasıl değiştirilir


120

Girintilerim için 4 yerine 2 boşluk kullanmak istiyorum. C modunun varsayılan davranışını şu şekilde değiştirebilirim:

(setq c-basic-offset 2)

Bunu javascript modunda nasıl değiştiririm?

Yanıtlar:


198

js-indent-level emacs 23.2'den başlayarak varsayılan olarak dahil edilen varsayılan javascript modunda kullanılabilir.

(setq js-indent-level 2)

aradığınızı yapmalısınız. Emacs'in daha eski bir sürümünü kullanıyorsanız, java modunda olabilirsiniz. Sanırım bu mod yanıt veriyor c-basic-offset, ancak yanılıyorum.


2
(setq default-tab-width 2), java modu için karşılık gelen sekme genişliği ayarlayıcı olacaktır
Fergie

Bu mekanizmayı kullanarak sekme genişliği 8'de kalır ve bu nedenle sekmeler yalnızca girinti seviyesi 4 (2x4 = 8) veya daha fazla ise kullanılır. Boşluklar yerine sekmelerin kullanılması için sekme genişliğini nasıl 2 veya 4 olarak ayarlarsınız? Bir dizi ayarı denedim, örneğin (setq tab-width 4) ama boşuna. Amacım: sekme genişliği 4'ü kullanın ve yalnızca sekme karakterlerini kullanın (yerine boşluk bırakmayın).
jdp

jdp: Deneyin (defun my-javascript-mode-hook () (setq indent-tabs-mode t tab-width 4 js-indent-level 4)) (add-hook 'javascript-mode-hook 'my-javascript-mode-hook).
phils

Şu şekilde kullanın js-mode-hook:(defun my-js-mode-hook () (setq indent-tabs-mode t tab-width 4 js-indent-level 4)) (add-hook 'js-mode-hook 'my-js-mode-hook)
skeltoac

6
Bu herhangi bir yerde belgelendi mi? Bu bilgiyi yığın aşımı olmadan bulmanın bir yolu var mıydı? M-x hJs modundan baktım ama orada hiçbir şey bulamadım.
Charles Holbrow

75

Keşke birisi bana Custom'dan çok daha önce bahsetmiş olsaydı! Belki bu benim gibi başka bir ölümlüye yardım eder;)

Özel'i Çağır:

M-x customize

Ardından, "Programlama" yı ve ardından "Diller" i seçin ve ardından özelleştirmek için bir dil / mod seçin. Seçenekleri uygun gördüğünüz şekilde düzenleyin. İşiniz bittiğinde, "Mevcut oturum için kaydet" veya "Gelecekteki oturumlar için kaydet" i seçin.


17

Eğer js2 modunu kullanıyorsanız (ki bu daha güçlü IMHO'dur), o zaman komut şu şekildedir:

(setq-default js2-basic-offset 2)

Kaynak.


11

Ayrıca emac'leri sekmeler yerine boşluklar kullanacak şekilde ayarlamak isteyebilirsiniz.

(setq-default indent-tabs-mode nil)

Bu daha çok bir yorumdan çok gerçek cevaptır. Yorum yapabilmek için daha fazla itibar kazanın.
jcubic

2

Javascript.el dosyamda (/ usr / share / emacs / site-lisp) buldum

javascript-indent-level 4

Yani aynı lisp modunu kullanıyorsanız, bunu çalıştırarak değiştirebilirsiniz.

(setq javascript-indent-level 2)

2

Ayrıca kullanabilirsiniz

M-x customize-variable

ve yazın

js-indent-level

( js-[TAB] bir seçenek listesi gösterir). Ardından Js Indent Levelistediğiniz gibi değiştirin ve tıklayıp [State:]kaydedin.



2

Dosya bazında değiştirmek isterseniz, bunu dosyanızın en üstüne koyun:

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

0

Emacs 26'ya yükselttikten sonra bu çözümlerden hiçbiri benim için işe yaramadı (zaten js-indent-level2'ye ayarlamıştım ancak sekme genişliğim 8'e geri döndü), ancak işe yarayan şey tab-widthdeğişkeni olarak ayarlamaktı 2, bu da eskisinin yerini alıyor gibi görünüyordefault-tab-width değişkenin .

Bunu M-x customizearayarak buldum tab width.

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.