Я разработчик Python и работаю в компании, где соглашение об отступах для Python - это два пробела, а не четыре.
Итак, я замечаю эту проблему, когда вставляю код из vim:
Вот текст, который я пытаюсь вставить:
def four_spaces():
print "hello"
Этот текст скопирован в Mac из Chrome с помощью <cmd> c
. Обратите внимание, что я использую vim
в iTerm в Mac OS X.
Ниже приведены шаги для вставки этого в vim с использованием mac:
:set paste
Включить режим вставки- режим Append
a
Вставка в Mac- Результат показан в фрагменте 4. Обратите внимание, что это 4 пробела
<Cmd> v
* Визуальный режим для выбора вышеv kk
Исправить отступ- Результат показан в фрагменте 7. Обратите внимание на ^ I
Фрагмент 4 (режим списка включен)
def four_spaces():$
print "hello"$
Фрагмент 7 (режим списка включен)
def four_spaces():$
^Iprint "hello"$
Вот как выглядит мой файл .vimrc для тех, кто заинтересован:https://gist.github.com/anonymous/20b2a1f43125c0d39932bf430c8137dc
Проблема:
Проблема, с которой я сталкиваюсь сейчас, заключается в том, что у меня есть символ табуляции, а не 2 пробела при использовании =
. Это проблематично, потому что python использует отступ табуляции и не может позволить символам табуляции и пробелам сосуществовать вместе. Я пытаюсь выяснить, как получилось = не использует expandtab.
Вопрос: Как я могу вставить, используя <Cmd> v
и такой, что:
- Vim правильно форматирует мой код в 2 пробела
- ИЛИ когда я использую
=
для исправления отступа, он не заменит^I
?