Как быстро выбрать (внутреннюю) строку в Vim - PullRequest
8 голосов
/ 19 июля 2011

Vim имеет несколько очень полезных текстовых движений, таких как i b , i ) , i } , и так далее, чтобы быстро выделить часть текста.Но мне часто нужен внутренний блок в линейном режиме.Например (с номерами строк):

1:    $foo = array(
2:        'bar' => 'Bar',
3:        'quux' => 'Quux',
4:    );

Теперь, когда мой курсор находится где-то на строке 2 или 3, и я нажимаю v i b или v i ) , Vim выбирает строки 2, 3 и отступы в строке 4. Я просто хочу строки 2 и 3. У меня естьпробовал с V i b и V i ) , но они делают то же самоекак и в нижнем регистре v .

Есть ли какое-нибудь легкое движение текста или другой быстрый способ выбора внутреннего блока в линейном режиме?

Ответы [ 3 ]

4 голосов
/ 19 июля 2011

Я могу получить за это отрицательные голоса, но я просто сделаю движение вверх или вниз на количество нужных мне линий, например V 3 j или V 2 k , пока это известно.

У меня есть привязка, которая переключается между абсолютной и относительной нумерацией (:set relativenumber)так что визуально легко идентифицировать, пока они все на экране.

3 голосов
/ 19 июля 2011

Я согласен, что было бы неплохо иметь поведение, которое вы описываете. Если вы настроены, то вы всегда можете свернуть свой собственный текстовый объект, используя Kana's textobj-user framework. Я использовал это для создания текстового объекта для работы с рубиновыми блоками и обнаружил, что это удивительно легко сделать.

2 голосов
/ 21 июля 2011

В конце концов я нашел более простой способ: vim-indent-object позволяет мне выбирать области текста на основе уровня отступа.Это в значительной степени то же самое, учитывая, что мой исходный код всегда имеет хороший отступi i , чтобы выбрать внутренний объект отступа, и он выбирает строки 2 и 3. Groovy!

...