2011-07-30 1 views
4

Я пытаюсь использовать vim плагин, Tabular, чтобы выровнять некоторый некорректный CSS-код. К сожалению, я не могу понять, как начать матч в начале визуального отбора в Vim. Вот пример кода:Vim: начать регулярное выражение с начала Visual Selection

     color: #a8a8a8;font-family: Helvetica;              

         color: #d0d0d0;                    
         font-weight: normal; background-color: inherit; font-size: 13px !important;     

     background-color: inherit;                                
          width: 16px; min-width: 16px; display: inline-block; margin-right: 2ex; margin-left: 2px; 
       text-align: center; height: 0; line-height: .5ex; padding-top: 1ex;       
     background: transparent;                  

Моя попытка пытается выровнять влево до начала визуального выбора блока до сих пор не удалось, и мне интересно, где именно я не заладилось:

'<,'>Tabularize /\%V\s\+\zs\%V/ 

То есть, в визуальном выборе, сопоставляйте любые пробелы, а затем начинайте матч. Это должно доходить до символа первого слова и левого выравнивания, но я не думаю, что Tabularize распознает выбор визуального блока. Кроме того, \%V не имеет понятия ^ и разрывает регулярное выражение каждый раз. Сочетание ^\%V также подвело меня.

Любые предложения относительно быстрого форматирования и согласования с началом выбора визуального блока в vim?

+1

Можете ли вы описать, как вы определяете выбор визуального блока? Например, номер столбца, который он запускает, и номер, который он заканчивает в вашем примере. –

+0

@abatishchev: Откат. Цель этого вопроса - точно знать, как выровнять этот текст с помощью Vim. И хотя это связано с CSS, это просто связано. Любой текст может быть использован, поэтому лучше оставить тег один. Наблюдение за тегами CSS не так много. – sidyll

+0

@sidyll: Вы правы. Простите за это – abatishchev

ответ

1

Для этого не требуется табличное оформление. В любом случае, если вы хотите использовать его, сделайте просто:

:'<,'>Tab /^\s\+ 

Вам здесь не нужен выбор блока. Кстати, не имеет смысла работать с табличными и блочными выборами. Они полезны, когда вещи уже выровнены.

Но вы должны быть в состоянии выровнять эти строки, выбрав в режиме линейного мудр V, а затем просто нажмите =. В качестве альтернативы используйте движение, подобное =j и избегайте визуального выбора.

Смежные вопросы