Редактирование Python в Emacs - PullRequest
5 голосов
/ 05 февраля 2011

Я посмотрел на python-mode и python.el. Я использую python-mode.el. Я также использую веревку и веревочные станки. Я ищу либо какую-то документацию по этому, которая мне помогает, или другой пакет elisp или что-то еще.

Моя текущая проблема заключается в том, что код, который я дал, имеет несовместимые размеры отступов. Для некоторых блоков это будет два, для некоторых - 4. Я хочу это почистить, но по какой-то причине, когда я говорю emacs «исправить отступы», он просто нажимает на вкладку в каждой строке, что порождает код. То, что я хочу, это сохранить тот же относительный отступ, но стандартизировать по 4 пробелам. Позволит ли мне что-нибудь сделать это легко?

Полагаю, я мог бы найти каждый экземпляр неверного отступа, заблокировать его и запросить-заменить 2 пробела на 4 пробела. Но это слишком сильно зависит от моей точности, когда я замечаю, где это должно быть сделано. Кроме того, это много кода.

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

спасибо.

Ответы [ 3 ]

0 голосов
/ 05 февраля 2011
(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.

0 голосов
/ 26 июля 2012

с py-smart-indentation, установленным в `t '

текущий python-mode.el должен это сделать.

http://launchpad.net/python-mode

В случае ошибки, пожалуйста, сообщите там

0 голосов
/ 05 февраля 2011

Предполагая, что вы использовали комментарий Свена Марнача для очистки базы кода, я предполагаю, что вам просто нужно заставить 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))
...