Как изменить отступ в текстовом режиме для emacs - PullRequest
8 голосов
/ 20 октября 2010

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

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

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 ]

9 голосов
/ 21 октября 2010

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

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

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

2 голосов
/ 20 октября 2010

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

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

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

Она привязана к TAB.

(indent-for-tab-command & необязательный ARG)

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

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

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

(setq tab-width 2)
(setq indent-line-function (quote insert-tab))
0 голосов
/ 20 октября 2010

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

(setq standard-indent 2)

В вашем .emacs

...