Зробіть веб-режим завжди відступним пробілами


10

Я використовую веб-режим emacs , і вкладка у файлах JS, здається, діє дивно.

У мене вкладка встановлена ​​для проміжків 2 проміжків, але коли відступ досягає 8 пробілів, веб-режим перетворює їх на вкладку, а потім продовжує вкладку 2 пробіли, поки в не досягається ще 8, і перетворює це в іншу вкладку тощо.

Чи можу я не допустити цього і сказати emacs / web-режиму лише пробіли?

Редагувати:

Ось короткий приклад вкладеної функції:

(function() {
  function() {
    function() {
      function() {
    function() {
      // Indenting problem.
    }
      }
    }
  }
})()

Очевидно, це добре відображається в Emacs, але ви можете побачити проблему з відступом тут.

Тут зазначу, що це відбувається також у режимі javascript.


1
Це специфічно для веб-режиму? Або це відбувається де-небудь?
Малабарба

Це відбувається лише у веб-режимі, все інше вкладається з пробілами на невизначений термін.
dieuwe

Вибачте, режим javascript також працює те саме. Але це лише ті двоє.
dieuwe

Що javascript-modeви використовуєте, вбудований? Також це трапляється при введенні html в web-mode?
занотувано

Будь ласка, опублікуйте вміст вашого файлу init. Emacs використовує вкладку для 8 пробілів за замовчуванням, тому у вашому файлі init повинно бути щось, щоб вимкнути його для більшості режимів.
Жил "ТАК - перестань бути злим"

Відповіді:


10

Загалом, якщо ви хочете, щоб у відступі використовувалися лише пробіли, я рекомендую налаштувати:

(setq-default indent-tabs-mode nil)

Це змушує відступ використовувати пробіли та немає вкладок. Я не впевнений, якщо він web-modeвикористовує звичайні методи для відступу, тож це може не поважати.

Чи можете ви навести прикладний файл для демонстрації?


3
Додали приклад до питання. Додавання (setq indent-tabs-mode nil), схоже, нічого не змінює і в web-modeі javascript-mode.
dieuwe

3
Я думаю, ви повинні використовувати, setq-defaultтому що indent-tabs-modeце буфер-локальний.
nperson325681

@progo Гаразд, це спрацювало. Дуже дякую.
dieuwe

1
Чи можливий відступ лише вкладками? Я пробував різні налаштування, але він відступає лише зі змішаними вкладками / пробілами.
Дфр

1
@Dfr Ви повинні додати (setq-default indent-tabs-mode t)свій.emacs
fxbois

3

Будь ласка, спробуйте цей код у своєму конфігураційному файлі emacs, щоб застосувати відступ у веб-режимі. Я вказав це на домашній сторінці веб-режиму.

(require 'web-mode)
(defun my-web-mode-hook ()
  "Hooks for Web mode."
  (setq web-mode-markup-indent-offset 2)
)
(add-hook 'web-mode-hook  'my-web-mode-hook)

Це також спрацювало? (add-hook 'web-mode-hook (lambda () (setq web-mode-markup-indent-offset 2)))
Ендрю Ламарра
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.