1

скажем, у меня есть регулярное выражение внутри строки, и я хочу скопировать первую строку над позицией курсора, которая имеет этот шаблон, без перемещения курсора. Например (курсор помечен знаком ||):

This is a short example.  
On the other hand,  
I'm having trouble with it. ||

Как скопировать предложение "Это короткий пример" в положение курсора (II)? Если я буду искать предложение, курсор будет перемещен в This (?Это).

2 ответа2

3

Вы могли бы сделать:

:?short?t.

Это делает обратный поиск short (?short) и копирует совпадающую строку (t) после текущей строки (.).

Вы можете прочитать о командах Ex в :h :index и о диапазонах в :h range .

редактировать

В действительности это не совсем так, но я думаю, что приведенное выше объяснение может иметь немного больше смысла.

Точный механизм кратко объяснен в :h :copy :

:[range]co[py] {address}
    Copy the lines given by [range] to below the line given by {address}.

Здесь, [range] является первой линией выше текущего тот , который соответствует short , а {address} является текущей . ,

Я люблю Vim.

1

Есть несколько способов и плагинов, которые приходят мне в голову, но естественным способом будет просто поиск (?This is), дерните, а затем вернитесь в исходное положение с помощью Ctrl + O и вставьте. С помощью списка переходов (см. :help jumplist) временное перемещение не так уж плохо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .