Как выровнять по левому краю операторы потока ввода-вывода << и >> в Vim? - PullRequest
6 голосов
/ 15 сентября 2011

Например, вместо следующего выравнивания:

std::cout << "Hello " << "Hello "
  << "world ";

Я хочу выровнять оператор << по левому краю, как:

std::cout << "Hello " << " Hello "
          << "world ";

По умолчанию Vim выбирает первый. Похоже, что это просто увеличивает отступ на один уровень для новой строки.

Итак, есть ли способ получить второе выравнивание по умолчанию?

P.S. Я уже пробовал плагин Align , но он выравнивает область в таблице, например:

std::cout << "Hello World" << "Hello "
          << "World"       << "World Hello".

который я считаю слишком редким.

Ответы [ 2 ]

4 голосов
/ 15 сентября 2011

Я использую Табличный , и это работает для меня

:Tabularize /^[^<<]\S*

Вывод:

std::cout << "Hello World" << "Hello "
          << "world " << "World Hello";

Пояснение

^ Начало, затем << до первого <<, затемМатч начнется точно в первый <<.

1 голос
/ 15 сентября 2011

С плагином Align команда для выравнивания выбранных строк текста так, как вам нужно, - :<,>Align! l: <<.Первым аргументом является команда AlignCtrl, которая предписывает выравнивать по левому краю первое поле и обрабатывать остальную часть строки как одно поле.Второй аргумент - это разделитель.Руководство по выравниванию объясняет все доступные аргументы и предопределенные отображения.

...