Проблема с использованием буфера обмена для вставки столбцов рядом друг с другом заключается в типе его выделения, см. Здесь:
:echo getregtype('+')
if it returns a lowercase v, it means the type is characterwise.
if it returns an uppercase V, it means the type is linewise.
if it returns ^V{some number}, it means the type is blockwise, and the width of the block is {some number}.
Но мы можем изменить его следующим образом (сделать так, чтобы буфер обмена регистрировался по блокам):
:call setreg('+',@+,'b')
Теперь, если вы попытаетесь вставить новый столбец до или после первого, у вас все получится!
Здесь есть функция для получения содержимого буфера обмена и вставки после текущего столбца
fun! GiveItaNameYouWant()
call setreg('+',@+,'b')
normal gg
execute "normal! A \<esc>"
execute "normal! \"+p"
endfun
Если вы скопируете эту функцию в буфер обмена и загрузите ее в память, просто запустите:
:@+
Теперь поместите курсор в первый столбец и запустите:
:call GiveItaNameYouWant()
Примечание: я имею в виду только регистр буфера обмена, но вы также можете внести эти изменения в основной регистр выбора "*", в регистр янки "0" и регистр по умолчанию "" "и" az ".
Ссылки: { ссылка }