Как вставить столбец текста после другого столбца текста в Vim? - PullRequest
62 голосов
/ 03 февраля 2012

У меня есть две колонки, полные текста, и я хочу получить их рядом.Например, у меня есть

abc
def
ghi

и

123
456
789

, и я хочу

123 abc
456 def
789 ghi

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

Ответы [ 6 ]

62 голосов
/ 18 декабря 2014

Мне было интересно, почему «режим визуального блока» не работает для меня.Ключ к yank (или к удалению) в визуальном режиме.

Мне нужно скопировать некоторые вещи из столбцов Excel, имеющих переменную длину.Вот как я это делаю:

Names
Donald Knuth
Sebastian Thrun
Peter Norvig
Satoshi Nakamoto

Age
100
50
60
45

Допустим, вы хотите поместить второй столбец после первого.

  1. Янкировать в визуальном режиме:
    • Переместить курсор в начало Age
    • Нажмите Ctrl + v для входа в визуальный режим
    • Переместите курсор на 5 in 45
    • Нажмите y, чтобы восстановить (или d, чтобы удалить)

Вы уже дернули ввизуальный режим.

Вставить (в обычном режиме)

  • Перейти к концу первой строки и добавить больше пробелов, потому что, например, она короче, чем вторая строка.Если вы вставите «блок» без добавления лишних пробелов, он перезапишет «запуск» в Себастьяне Труне.

  • Теперь вы на первой строке, вставьте несколько пробелов послепоследний персонажУбедитесь, что вы не в режиме вставки, и нажмите p, чтобы вставить блок.(Если вы хотите вставить в режиме вставки, используйте ctrl+r ")

enter image description here

51 голосов
/ 03 февраля 2012

Используйте визуальный блок (ctrl-v), чтобы вырезать буквенный столбец.Затем перейдите к первой строке числового столбца.Двигайтесь до конца и сделайте один пробел.Затем вставьте столбец письма.

15 голосов
/ 03 февраля 2012

У вас есть:

abc
def
ghi

123
456
789

Переместите курсор на a.Затем CTRL+V и переместите курсор на i.Нажмите y.

Далее, добавьте пробел после символа 3 и нажмите p.

Готово.

5 голосов
/ 21 января 2019

Если вы на Mac и не можете понять, почему вставка вставляет блок в новые строки, это потому, что вы используете системный монтажный картон.

Нет проблем, просто дерните / вставьте с буферами:

  1. Ctrl v - выберите, что вы хотите дергать
  2. " буква y - возврат в letter буфер
  3. Перейдите туда, куда вы хотите вставить
  4. " буква p - вставка из letter буфер

Убедитесь, что letter не является +, поскольку это буфер системного буфера и, следовательно, он будет иметь тот же эффект.

3 голосов
/ 05 ноября 2015

Это может показаться очевидным, но если вы вставляете из внешнего скопированного буфера, он не будет работать только с вставкой в ​​визуальном режиме. Что вы можете сделать, это сначала сделать обычную вставку в пустую область и выполнить вертикальную вырезку / вставку, используя описанный выше метод.

0 голосов
/ 08 февраля 2018

Если вы хотите вручную установить тип регистра, скажем, блочный, используйте это

:call setreg(0, getreg(0), 'b')

или

:call setreg('*', getreg('*'), 'b')

Полезно для вставки столбца из редактора электронных таблиц.

Подробнее см. :help setreg и vimtip .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...