Узкое место, здесь , кажется, все jjjj…
что вы делаете. Предполагаемое превосходство hjkl
над клавишами со стрелками цитируется так часто, что люди склонны забывать об огромной ценности движений Vim и текстовых объектов над обоими утомительными методами.
Предположим, что вы находитесь в первой строке абзаца, как определено Vim (текст между пустыми строками), y'}P
должен выдернуть весь абзац, включая следующую пустую строку, и вставить его над текущей строкой.
some text above
[l]orem ipsum dolor sit amet
ipsum lorem dolor sit amet
lorem dolor ipsum sit amet
lorem ipsum sit dolor amet
lorem ipsum dolor amet sit
some text below
y'}P
some text above
[l]orem ipsum dolor sit amet
ipsum lorem dolor sit amet
lorem dolor ipsum sit amet
lorem ipsum sit dolor amet
lorem ipsum dolor amet sit
lorem ipsum dolor sit amet
ipsum lorem dolor sit amet
lorem dolor ipsum sit amet
lorem ipsum sit dolor amet
lorem ipsum dolor amet sit
some text below
v}yP
должен работать более комфортно.
Если ваш блок не является "абзацем", вероятно, есть способ определить выделение с помощью движения вместо jjj
. Что-то вроде V/it$<cr>
.
редактировать
Вот еще один вариант, который помещает копию ниже оригинала: y'}'}p
.
редактировать
Я думаю, что самый общий способ сократить весь процесс - это расширить визуальный выбор:
Как только выбор сделан, вы можете:
дергать (y
),
перейти к концу визуального выделения ('>
или 5j
но '>
более обобщенно),
открыть новую строку (o
),
выйти из режима вставки (<Esc>
),
паста (p
)
Этот метод, вероятно, самый общий, но он все еще требует много печатания. Вот где отображения приходят на помощь:
vnoremap <F9> y'>o<Esc>p
Идея здесь состоит в том, чтобы отделить контекстное от общего:
контекстная часть - это когда вы определяете блок для дублирования, потому что нет способа предсказать, что вы хотите дублировать. Я оставляю эту часть на ваше усмотрение, но я надеюсь, что вы будете использовать лучший метод, чем jjjjjj…
общая часть - это все, что следует за выделением, выполненное здесь с помощью простого сопоставления.
Весь процесс теперь сокращен до V5j<F9>
который настолько быстр, насколько вы можете получить.