Установите 4 отступа пространства в Emacs в текстовом режиме

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

156
задан amalloy 6 June 2013 в 05:32
поделиться

9 ответов

(customize-variable (quote tab-stop-list))

или добавляют стоп-лист вкладки запись в пользовательские переменные набора в файл .emacs :

(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(tab-stop-list (quote (4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120))))
29
ответ дан Bert F 23 November 2019 в 21:50
поделиться

Вы попробовали

(setq  tab-width  4)
0
ответ дан 23 November 2019 в 21:50
поделиться

Попробуйте это:

(add-hook 'text-mode-hook
  (function
   (lambda ()
     (setq tab-width 4)
     (define-key text-mode-map "\C-i" 'self-insert-command)
     )))

, Который заставит ВКЛАДКУ всегда вставить литеральный Символ табуляции с позициями табуляции каждые 4 символа (но только в Текстовом режиме). Если это не то, что Вы просите, опишите поведение, которое требуется видеть.

6
ответ дан cjm 23 November 2019 в 21:50
поделиться
(setq tab-width 4)
(setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80))
(setq indent-tabs-mode nil)
11
ответ дан 23 November 2019 в 21:50
поделиться

Можно найти легче настроить вкладки следующим образом:

M-x customize-group

В эти Customize group: подсказка входят indent.

Вы будете видеть экран, где можно установить все Вы опции расположения с отступом и установить их для текущей сессии или сохранить их для всех будущих сессий.

, Если Вы делаете это этот путь, Вы захотите к , настраивает файл .

удовлетворения требованиям заказчика
21
ответ дан Dave Webb 23 November 2019 в 21:50
поделиться

Эта проблема не вызвана отсутствием табуляции; Дело в том, что в emacs есть метод табуляции (new?), называемый indent -lative, который, кажется, предназначен для выстраивания табличных данных. Клавиша TAB отображается на метод indent-for-tab-command, который вызывает любой метод, на который установлена ​​переменная indent-line-function, который является относительным к отступу методом для текстового режима. Я не нашел хороший способ переопределить переменную indent-line-function (перехват текстового режима не работает, так что, возможно, он сбрасывается после запуска перехватчиков режима?), Но один простой способ избавиться от этого Поведение состоит в том, чтобы просто бросить метод команды intent-for-tab-command, установив TAB на более простой метод tab-to-tab-stop:

(define-key text-mode-map (kbd "TAB") 'tab- к вкладке-стоп)

7
ответ дан 23 November 2019 в 21:50
поделиться

Мне было достаточно просто изменить стиль с помощью c-set-style.

4
ответ дан 23 November 2019 в 21:50
поделиться
(setq-default tab-width 4)
(setq-default indent-tabs-mode nil)
0
ответ дан 23 November 2019 в 21:50
поделиться

Краткий ответ:

Ключевым моментом является указание emacs вставлять все, что вы хотите, при отступе, это делается путем изменения функции-строки-отступа. Легче изменить его, чтобы вставить табуляцию, а затем заменить табуляцию на 4 пробела, чем изменить ее, чтобы вставить 4 пробела. Следующая конфигурация решит вашу проблему:

(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq indent-line-function 'insert-tab)

Объяснение:

Из Отступ, контролируемый основным режимом @ emacs manual :

Важная функция каждого основного режим - настроить ключ для сделать отступ для языка отредактировано.

[...]

Переменная функция строки отступа функция, которая будет использоваться (и различные команды, как при звонке indent-region) для отступа текущего линия. Команда отступ в соответствии с режимом больше не работает чем вызвать эту функцию.

[...]

Значение по умолчанию зависит от отступа для многих режимов.

Из руководства @ emacs с относительным отступом:

Относительный отступ Относительный отступ до следующего точка отступа в предыдущей непустой строке.

[...]

Если в предыдущей непустой строке нет точки отступа за точкой столбца начинается с, `tab-to-tab-stop 'выполняется вместо этого.

Просто измените значение функции indent-line-function на функцию insert-tab и настройте вставку табуляции как 4 пробела.

134
ответ дан 23 November 2019 в 21:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: