Как сделать режим Emacs Python генерировать TAB для отступа?
Я работаю с кучей программистов на Python, которые используют vim, и они делают Python, используя TAB для отступа. Я использую Emacs с python-mode, который переводит ключ табуляции в 4 пробела (как и должен, но неважно). Поскольку я не хочу вызывать проблемы, я хочу добавить что-то в файл .emacs(или что-то еще), чтобы сделать отступы, используя реальную TABS, вместо того, чтобы переводить их в пробелы. Как?
Прошу прощения, если на это ответят где-то еще: я не нашел его.
Ответы
Ответ 1
Вы можете определить специфичные для 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)))
Ответ 2
возможно, нужно сделать это в режиме python:
(setq indent-tabs-mode t)
Ответ 3
Как правильно сказали комментаторы сообщения, использование вкладок для отступов - плохая идея, а использование нестандартной ширины табуляции еще хуже. Тем не менее, иногда у вас нет выбора, если вы хотите сотрудничать.
В зависимости от того, как ваши коллеги сконфигурировали vim, вам может понадобиться как включить indent-tabs-mode
, так и установить tab-width
на 4.
Удобный способ сделать это, который не испортит вашу другую работу, заключается в использовании локальных переменных файла. В конце каждого оскорбительного файла поместите это:
# Local Variables:
# indent-tabs-mode: 1
# tab-width: 4
# End:
(Вы должны указать Emacs, что indent-tabs-mode
- безопасная локальная переменная.)