emacs: как делать отступ/не располагать с отступом, регион Python кодируют 4 пробелами?

У меня есть регион кода Python, выбранного в emacs. Что самые эффективные пути состоят в том, чтобы расположить с отступом и не расположить каждую строку с отступом в нем 4 пробелами?

Идеально я хотел бы что-то, что это не контекстно-зависимо (например, это позволит мне проходам отступа в docstrings, где добавление отступа не касается синтаксиса Python).

Мои шоу строки режима (Python). Поиск сети я нашел большое обсуждение использования python-mode вместо python, но я только начал использовать emacs несколько дней назад, таким образом, я опасаюсь изменять значения по умолчанию, прежде чем у меня был шанс понять и их. При изменении на python-mode наилучший вариант, я рад признать что как ответ.

Что я попробовал (из руководства):

  • <TAB> никакой эффект
  • C-M-\ никакой эффект
  • C-x <TAB> (отступ твердо) располагает каждую строку с отступом на один столбец (и отменяет выбор региона),
  • M-i располагает одну первую строку с отступом вкладкой (длина 8 пробелов)
  • C-M-q - "C-M-q не определен"

Единственным путем я нашел, использует regex-замену, но это - ужасное количество нажатий клавиш для такой простой задачи.

60
задан 09.08.2010, 15:51

4 ответа

Предположение, что переменная python-indent 4:

M-x python-shift-right (C-c >)
M-x python-shift-left  (C-c <)
69
ответ дан 07.12.2019, 08:18

indent-rigidly берет аргумент префикса, указывающий, сколько сделать отступ, таким образом, C-u 42 C-x TAB отступы на 42 столбца, и начиная с аргумента префикса по умолчанию равняются 4, C-u C-x TAB отступы на 4 столбца.

Если Вы хотите выбрать регион снова, сделать C-x C-x впоследствии.

17
ответ дан 07.12.2019, 08:18

Используйте команду отступа твердо с числовым префиксом.

C-u 4 M-x indent-rigidly располагать регион с отступом четырьмя пробелами, C-u -4 M-x indent-rigidly удалить четыре пробелов.

8
ответ дан 07.12.2019, 08:18

Вы могли также использовать режим столбца.

Выберите строки в режиме столбца, затем добавьте четыре пробелов ко всем ним сразу:

  1. Переход к столбцу 1 первой строки Вы хотите сделать отступ.
  2. C-<space> установить метку
  3. переместите точку вниз к последним строкам (останьтесь в столбце один),
  4. C-x r t переходить к режиму столбца (или C-<RET> если у Вас есть режим CUA),
  5. <space><space><space><space><RET>

Можно сделать, подобный маневр для удаления четырех пробелов - просто включает 4 столбца в отмеченный регион (шаги 2-3) и совершил нападки <DEL>

3
ответ дан 07.12.2019, 08:18

Теги

Похожие вопросы