Быстрый рывок в Vim - PullRequest
       60

Быстрый рывок в Vim

10 голосов
/ 02 марта 2012

Я часто нахожусь в такой ситуации:

line i want to yank
.
.
.
[cursor position]

Я хочу восстановить строку и вставить в [cursor position].

Я делаю это с [n]k, Y, [n]j, p.Это много печатать;).Раньше я использовал:

:[line number]Y

, а затем вставил, но это не работает с относительными номерами строк (опция relativenumber).

Какой самый быстрый способ сделать такое восстановление/ Вставить, когда включены относительные числа?

Ответы [ 6 ]

8 голосов
/ 02 марта 2012

Если линия находится в пределах видимости (до или после позиции курсора), я обычно просто ищу ее (?line i want), дергаю, затем иду `` (назад в предыдущую позицию), затем p.

5 голосов
/ 02 марта 2012
 :/your desired search for the specific line/ y

или

 :N y

(где N - конкретный номер строки) скопирует конкретную строку (и это может быть также диапазон).Теперь вы нажимаете p , чтобы вставить его.Таким образом, вы не перемещаете курсор.

5 голосов
/ 02 марта 2012

Я попробую это:

  • ? Yank + Введите <== type <strong>significant patten для поиска в обратном направлении
  • гг
  • Ctrl + O <== вернуться назад </li>
  • p
4 голосов
/ 03 марта 2012

Когда известен номер строки для копирования (абсолютная или относительная), удобный способ дублировать эту строку - использовать команду :copy.Например, команда «Ex» ниже копирует строку, которая на четыре строки выше, и вставляет ее ниже текущей.

:-4t.
4 голосов
/ 02 марта 2012

Кстати, если я действительно собираюсь повторить строку, которую я использовал ранее где-либо в любом из открытых на данный момент файлов, тогда я просто использую ярлык ^X^L в режиме вставки после ввода нескольких начальных символов .

Допустим, я хочу повторить эту строку, которая часто повторяется в моей программе:

for (int i = 0; i < numChildren; i++) {

Затем я набираю for (in, а затем просто нажимаю ^X^L, и Vim завершает это для меня. (На самом деле, он ждет, когда я приму его; если я сделаю ^L снова, он покажет мне следующий вариант.)

Посмотрите ^X^L, это очень удобно.

:help ^X^L

PS: публикация в виде отдельного ответа, поскольку ваш первоначальный вопрос касается именно «рывков», а это технически автоматическое завершение.

2 голосов
/ 02 марта 2012

Если линия вне поля зрения (в дополнение к Manish ' answer ), я считаю, что это удобно для

  • разделите экран, набрав :sp, а затем
  • поиск строки, которую нужно выдернуть
  • дерните образец в верхней части, а затем
  • перейти к нижнему экрану с помощью CTRL - w - j , где курсор все еще находится (в том же столбце), как и когда я :sp зажег буфер.
...