如何复制光标上方的行?

时间:2017-06-12 14:34:34

标签: vim copy

这里是示例文本文件,光标位于第4行。

enter image description here

在当前状态下输入2yy - 正常模式,

test4
test5

以上两行,在光标下方复制 如何复制光标上方而不是下方的两行?

test3
test4

输入1k和2yy可以得到它,还有另一种方法吗?
-2yy和2YY都无法正常工作。

2 个答案:

答案 0 :(得分:1)

评论中提到的组合工作。如果您愿意,还可以将以下映射添加到启动选项中,然后使用2Y复制当前行和上面的行而不移动光标。

function! CopyLinesAbove(count)
  cal setreg('"',join(getline(line('.') - a:count + 1,line('.') + 1),"\n")."\n")
endfunction

command! -nargs=1 CopyLinesAboveCmd call CopyLinesAbove(<args>)
map Y :<C-U>CopyLinesAboveCmd(v:count)<CR>

答案 1 :(得分:0)

Vky有效,因为它处于行阻止模式。 y1k有效,但Vky背后的逻辑对我来说似乎更直接。