Визуальный блок вставить новую строку

10

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

Но я пытаюсь вставить новую строку следующим образом:

Выбор отмечен как []:

Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext

Я нажимаю Iи могу добавить текст для вставки перед t:

Some other text
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext

Когда я нажимаю, <Esc>я получаю следующее:

Some other text
Some other text
Some other text
Some other text
Some other text

Но теперь, если я нажимаю <CR>вместо текста, который я хочу добавить, новая строка вставляется по желанию, но не для других строк. Результат следующий:

Some 
text
Some text
Some text
Some text
Some text

Вы знаете, почему это не работает?

Примечание: так как это работает, cи rя не уверен, почему это не работает ...

nobe4
источник
Если целью является создание новой строки после некоторого символа для выбранных строк, мы можем попробовать макрос. Перейдите в n-й столбец, введите новую строку и повторяйте ее до выбора
SibiCoder
Да, или подстановка также может сработать, но я намерен найти способ сделать это в режиме визуального блока.
nobe4
4
К сожалению, этого нельзя сделать в режиме визуального блока. Вместо этого используйте замену или запись.
Ромен

Ответы:

4

Визуальный блок Iне работает так. Лучшее, что вы можете сделать, это что-то вроде следующего.

Выделите столбец в режиме визуального блока (с [b]обозначением выделенного символа, как в вашем вопросе):

aaa[b]bb
aaa[b]bb
aaa[b]bb
aaa[b]bb
cccccc

Выполните замену в визуальной области \%V:

:'<,'>s/\%V/\r/

Vim вставит '<,'>для вас, когда вы нажимаете :, так что вам не нужно вводить этот бит.

И результат:

aaa
bbb
aaa
bbb
aaa
bbb
aaa
bbb
cccccc

Если вам нужно часто разбивать строки в визуальном блоке, скорее всего, он будет легко доступен в вашей истории, и тогда вам, возможно, не потребуется делать ничего, кроме выделения :<up><return>.

Antony
источник
Хорошее использование \%Vдаже если это не то, что я хотел, я приму это (но то, что я хочу, кажется невозможным в любом случае ^^)
nobe4