Backspace, если символы от курсора до начала строки являются символами табуляции / пробелов, вернитесь на один уровень отступа - PullRequest
4 голосов
/ 17 июля 2010

Я использую Vim для разработки на Python.Иногда после выражения в предложении if: (предположим, | - курсор).

if test:
    pass
    |

... Я нажимаю клавишу ввода и хочу перейти на уровень идентификации if.

Я знаю, что могу вернуться в командный режим и просто нажать <, но я хотел бы знать, если это возможно, когда Vim знает, что все символы за курсором являются символами табуляции или пробела, чтобы вернуться на одинуровень отступа при нажатии клавиши Backspace (или значения shiftwidth).

1 Ответ

8 голосов
/ 17 июля 2010

Установите softtabstop равным shiftwidth и включите expandtab:

:set expandtab shiftwidth=4 softtabstop=4

Теперь, когда вы нажимаете Backspace , Vim автоматически удалит нужное количество пробеловчтобы вернуться на один уровень отступа.

Существует несколько параметров, которые управляют поведением вкладок, пробелов и отступов, и они могут взаимодействовать неочевидными способами.Я рекомендую этот эпизод Vimcast для очень четкого обзора:

http://vimcasts.org/episodes/tabs-and-spaces/

...