Редактирование Python в Emacs
Я посмотрел на python-mode и python.el. Я использую python-mode.el. Я также использую веревку и веревочные станки. Я ищу либо какую-то документацию по этому, которая мне помогает, или другой пакет elisp или что-то еще.
Моя текущая проблема заключается в том, что код, который я дал, имеет несовместимые размеры отступов. Для некоторых блоков это будет два, для некоторых - 4. Я хочу это убрать, но по какой-то причине, когда я говорю emacs "исправить отступы", он просто нажимает на вкладку в каждой строке, что приводит к ошибкам в коде. То, что я хочу, это сохранить тот же относительный отступ, но стандартизировать по 4 пробелам. Позволит ли мне что-нибудь сделать это легко?
Я полагаю, я мог бы найти каждый случай неправильного отступа, заблокировать его и запросить-заменить 2 пробела на 4 пробела. Но это слишком сильно зависит от моей точности, когда я замечаю, где это должно быть сделано. Кроме того, это много кода.
Кто-то сказал мне, что ремонтник велосипедов решит эту проблему, но это уже не годится для развития в течение нескольких лет... Есть другие предложения?
Благодарю.
3 ответа
Предполагая, что вы использовали комментарий Свена Марнача для очистки базы кода, я думаю, вам просто нужно заставить python-mode.el использовать стиль отступов, который вы предпочитаете?
Посмотрите на переменные py-indent-offset
, а также py-smart-indentation
(и, возможно, также py-continuation-offset
а также py-honor-comment-indentation
). Как и нормальный indent-tabs-mode
,
Вы можете настроить их (Mx customize-group
RET python
RET) или добавьте пользовательскую функцию в python-mode-hook
, например:
(add-hook 'python-mode-hook 'my-python-mode-hook)
(defun my-python-mode-hook ()
(setq indent-tabs-mode nil
py-smart-indentation nil
py-indent-offset 4))
С py-smart-indentation, установленным в `t'
текущий python-mode.el должен это сделать.
http://launchpad.net/python-mode
В случае ошибки, пожалуйста, сообщите там
(custom-set-variables
...
'(indent-tabs-mode nil)
'(tab-stop-list (quote (4 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120)))
'(tab-width 4))
Очевидно, что это глобальные настройки для режимов, которые их соблюдают (что делает Python-режим). Я совсем не суетился с настройками отступов в режиме python.