Как заставить режим Emacs Python генерировать TAB для отступа? - PullRequest
11 голосов
/ 13 июля 2011

Я работаю с группой программистов на Python, которые используют vim, и они делают Python, используя TAB для отступа. Я использую Emacs с python-режимом, который переводит клавишу табуляции в 4 пробела (как и должно быть, но не берите в голову). Поскольку я не хочу создавать проблемы, я хочу добавить что-то в мой файл .emacs (или любой другой), чтобы сделать отступы, используя реальные TABS вместо того, чтобы переводить их в пробелы. Как?

Извините, если на этот вопрос ответили где-то еще: я не нашел его.

Ответы [ 3 ]

10 голосов
/ 13 июля 2011

Вы можете определить специфичные для Python настройки в ~/.emacs с помощью python-mode-hook.Чтобы использовать вкладки для отступа, вы можете использовать:

(add-hook 'python-mode-hook
  (lambda () (setq indent-tabs-mode t)))

Поскольку python.el имеет отступ только в 4 столбца, по умолчанию в приведенном выше вкладке будут использоваться отступы, кратные 8, и после табуляциипробелы для других отступов.

Если вам нужно использовать одну вкладку для каждого уровня отступа, вам также нужно установить python-indent на 8. Затем вы можете установить tab-width на любую ширину, которую хотитесм. вкладки, отображаемые как.

(add-hook 'python-mode-hook
  (lambda ()
    (setq indent-tabs-mode t)
    (setq python-indent 8)
    (setq tab-width 4)))
1 голос
/ 13 июля 2011

, вероятно, нужно сделать это в режиме Python:

(setq indent-tabs-mode t)
0 голосов
/ 13 июля 2011

Как правильно сказали комментаторы к посту, использование вкладок для отступа - плохая идея, а использование нестандартной ширины вкладок - еще хуже. Тем не менее, иногда у вас нет выбора, если вы хотите сотрудничать.

В зависимости от того, как именно ваши коллеги настроили vim, вам может понадобиться и включить indent-tabs-mode и установить tab-width в 4.

Удобный способ сделать это, который не испортит вашу другую работу, - это использовать файл локальных переменных . В конце каждого файла оскорблений, поместите это:

# Local Variables:
# indent-tabs-mode: 1
# tab-width: 4
# End:

(Вы должны будете сказать Emacs, что indent-tabs-mode является безопасной локальной переменной.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...