Как лучше всего использовать Vim для работы с относительными диапазонами в визуальном режиме? - PullRequest
12 голосов
/ 26 октября 2011

Я часто удаляю, дергаю и вставляю, используя что-то вроде этого:

:3,6y

Начиная с Vim 7, я переключился на использование относительных номеров строк.Я считаю, что гораздо проще использовать относительную нумерацию строк с такими командами, как h,j,k,l и т. Д.

. С переходом на относительную нумерацию строк мне трудно работать в абсолютных диапазонах (например, :3,6y).Мне требуется слишком много времени, чтобы определить, какие абсолютные номера строк мне нужно выбрать, поскольку Vim отображает относительные номера строк.

Каков наилучший / быстрый способ использования визуального выбора в диапазоне, если ваша настройка отображает относительную нумерацию строк?Наивно я ищу что-то вроде:

:-2,+8y 

(yank the lines from 2 lines above my current position to 
8 lines below my current position.)

1 Ответ

14 голосов
/ 26 октября 2011

Вы пробовали свою наивную вещь?

:-2,+8y эквивалентно :.-2,.+8y и должно делать то, что вы хотите.

Обратите внимание, что если вы не укажете число, предполагается, что 1, поэтому: :,+y означает .,.+1 y: текущий ток и следующую строку.

На :help range это плохо объяснено. Соответствующие части здесь:

Line numbers may be specified with:     *:range* *E14* *{address}*
    [...]
    .       the current line              *:.*
    [...]
Each may be followed (several times) by '+' or '-' and an optional number.
This number is added or subtracted from the preceding line number.  If the
number is omitted, 1 is used.

Что не говорит документ, так это то, что если + r - ничего не предшествует, предполагается ..

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