16

I'm not really sure how to describe what I'd like to do. Basically I'd like to use visual block mode to select a region of text and then paste it "as a collection of lines" rather than as a rectangle.

a b
c d
e f
g h

after pressing gg0<c-v>Gy the rectangle a/c/e/g is in the default yank register (I forgot what it's called).

If I then paste the rectangle p I get the following:

aa b
cc d
ee f
gg h

I'm wondering if it's possible to paste a rectangle / visual block selection on a group of lines by itself, as if it were an ordinary visual selection.

a
c
e
g
a b
c d
e f
g h
1
  • You can set register type to linewise before pasting. Something like this: :call setreg('+', @+, 'V'). Depending on your OS and your setting of clipboard, you might need to do this for registers * or " instead. It's longer to type than the answer below, but it might still come in handy in more complicated contexts.
    – lcd047
    Jul 21, 2016 at 17:52

1 Answer 1

18

Try this:

:put! "
  • :put: insert the contents of the specified register
  • !: insert before the current line (the default is after)
  • ": the unnamed register (check :help registers for details)

You could do it from insert mode as well: Ctrl-r+"

1
  • Since the default is ", :put! works just as well.
    – D. Ben Knoble
    Apr 19 at 13:01

Not the answer you're looking for? Browse other questions tagged or ask your own question.