VIM: удалить первые x непробельных символов для нескольких строк с неравномерным отступом - PullRequest
0 голосов
/ 01 февраля 2019

При наличии одинакового отступа я понимаю, как это сделать для vim: удалить первые 2 пробела для нескольких строк

Что если у нас будут противоречивые отступы?

Пример ввода:

#for i in range(5):
  #print(i)

Пример вывода:

for i in range(5):
  print(i)

Я пытался использовать режим визуального блока + '6', чтобы перейти к первому символу встрока, но «6» не переходит к первому небелому символу в блоке строки, как в обычном режиме.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Возможно, вы можете использовать команду подстановки с регулярным выражением.

:%s/\(^\s*\)\S/\1/

%s выполняет подстановку по всему файлу
\(^\s*\) группирует начало строки и необязательный пробелсимволы
\S соответствуют первому непробельному символу - вы можете добавить их больше, если хотите удалить 3
\1 сделать замену первой группе

0 голосов
/ 01 февраля 2019

много способов.Самым простым, вероятно, является Visual: V (выберите) : norm _x CR (для каждой строки в визуальном диапазоне перейдите к первому не отступающему символу и удалитеЭто).:help V;:help :normal-range;:help _;:help x

Однако ... это не проблема.Я рекомендую вам прокомментировать # в том же столбце:

# for i in range(5):
#   print(i)

Еще лучше, воспользуйтесь плагином Commentary Тима Попа, который комментирует и раскомментирует на многих языках (включая Python)безболезненный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...