Как изменить отступ в текстовом режиме для emacs

Я нахожусь в текстовом режиме и хочу, чтобы моя клавиша табуляции делала отступ в две пробелы.

Файл выглядит так:

Line one

Line two

Курсор находится перед буквой "L": "Вторая строка", и я нажимаю клавишу TAB, и он получает отступы в 6 пробелов в отличие от желаемых 2 пробелов.

Действия, которые я пробовал:

  1. Я попытался обновить переменную: tab-stop-list

    (setq tab-stop-list '(2 4 6 8 10 12 14 16))
    
  2. Я пытался добавить text-mode-hook

    (add-hook 'text-mode-hook
      '(lambda ()
        (setq tab-width 2)))
    

3 ответа

Добавьте это к вашему.emacs:

(add-hook 'text-mode-hook
          '(lambda ()
             (setq indent-tabs-mode nil)
             (setq tab-width 2)
             (setq indent-line-function (quote insert-tab))))

Смотрите Учебник по отступам Emacs.

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

Из документации по связыванию ключей в текстовом режиме

TAB (в переводе с) запускает команду indent-for-tab-command, которая представляет собой интерактивно скомпилированную функцию Lisp в `indent.el'.

Это связано с TAB.

(отступ для команды табуляции и необязательный ARG)

Сделайте отступ в строке или области соответствующим образом для текущего основного режима или вставьте вкладку. В зависимости от `tab-всегда-отступа ', вставьте вкладку или отступ.

В большинстве основных режимов, если точка была в отступе текущей строки, она перемещается к первому непробельному символу после отступа; в противном случае он остается в той же позиции в тексте....

К счастью, это можно изменить. Добавление следующего к вашему текстовому мод-хуку должно сделать то, что вам нужно:

(setq tab-width 2)
(setq indent-line-function (quote insert-tab))

Попробуйте установить

(setq standard-indent 2)

В вашем .emacs

Другие вопросы по тегам