Como alterar a largura do recuo no modo javascript do emacs


120

Eu gostaria de usar 2 espaços para meus recuos em vez de 4. Posso alterar o comportamento padrão do modo C usando:

(setq c-basic-offset 2)

Como altero isso no modo javascript?

Respostas:


198

js-indent-level pode ser usado no modo javascript padrão, incluído por padrão no emacs 23.2.

(setq js-indent-level 2)

deve fazer o que você está procurando. Se você estiver usando uma versão mais antiga do emacs, pode estar no modo java. Eu acho que esse modo responde c-basic-offset, no entanto, posso estar errado.


2
(setq default-guia de largura 2) seria a guia correspondente largura Setter para modo java
Fergie

Usando esse mecanismo, a largura da guia permanece em 8 e, portanto, as guias são usadas apenas se o nível de recuo for 4 (2x4 = 8) ou mais. Como você define a largura da guia como 2 ou 4 para que sejam usadas guias em vez de espaços? Eu tentei um monte de configurações, por exemplo (setq tab-width 4), mas sem sucesso. Meu objetivo: use a largura da guia 4 e use apenas caracteres da guia (não espaços como substitutos).
jdp

jdp: Tente (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

Use js-mode-hook, assim:(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
Isso está documentado em algum lugar? Havia uma maneira de encontrar essas informações sem o stackoverflow? Olhei em M-x hde js-mode, mas não consegui encontrar nada lá.
Charles Holbrow

75

Eu gostaria que alguém tivesse me falado sobre o Custom muito antes! Talvez isso ajude outro mero mortal como eu;)

Invocar Personalizado:

M-x customize

Em seguida, escolha "Programação", "Idiomas" e selecione um idioma / modo para personalizar. Edite as opções como achar melhor. Quando terminar, escolha "Salvar para a sessão atual" ou "Salvar para futuras sessões".


17

Se você estiver usando o modo js2 (que é o IMHO mais poderoso), o comando é:

(setq-default js2-basic-offset 2)

Fonte.


11

Você também pode definir o emacs para usar espaços em vez de guias

(setq-default indent-tabs-mode nil)

Este é mais um comentário do que uma resposta real. Ganhe mais reputação para poder comentar.
Jcubic

2

No meu arquivo javascript.el (/ usr / share / emacs / site-lisp), encontrei

javascript-indent-level 4

Portanto, se você estiver usando o mesmo modo lisp, poderá alterá-lo executando

(setq javascript-indent-level 2)

2

Você também pode usar

M-x customize-variable

e tipo

js-indent-level

( js-[TAB] mostra uma lista de opções). Em seguida, altere o Js Indent Leveldesejado e clique [State:]e salve.



2

Se você deseja alterá-lo por arquivo, coloque isso na parte superior do seu arquivo:

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

0

Nenhuma dessas soluções funcionou para mim após a atualização para o Emacs 26 (eu já havia js-indent-leveldefinido como 2, mas a largura da minha guia voltou para 8), mas o que funcionou foi definir a tab-widthvariável para 2, o que parece substituir a default-tab-widthvariável antiga .

Eu encontrei isso M-x customizepesquisando tab width.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.