Как я могу сразу получить визуальную обратную связь по всем строкам в режиме вставки визуальных блоков Vim? - PullRequest
1 голос
/ 18 января 2020

, когда мне нужно вставить один и тот же текст в несколько строк, обычно я переключаюсь на VISUAL-BLOCK и вставляю нужный текст. ( CTRL + V , движения, SHIFT + I ), но, как и в поведении по умолчанию vim, он дает только первую строку визуальной обратной связи перед возвратом в режим NORMAL (как на втором изображении). Есть ли какой-либо вариант или способ, которым я мог бы достичь результата, как указано в заголовке этого вопроса?

enter image description here enter image description here enter image description here

Ответы [ 2 ]

2 голосов
/ 18 января 2020

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

Пометить все нужные строки как 0 NULL, а затем использовать режим визуального блока, чтобы выделить столбец нулей; затем используйте g<C-a> для увеличения каждой строки.

Вы также можете использовать команду :global, например :g/\v^\d+/normal A<Tab>NULL.

Возможно, есть решение с макросом, но вы видите, где Я иду с этим. Это легко поддающаяся написанию задача.

1 голос
/ 18 января 2020

Введите первый ноль с A + literal tab + NULL следующим образом:

ID  MEMBER_TYP
--------------
1   NULL
2
3

Если вы используете относительное число:

:4,+14 normal .

Подробнее о Относительные числа : Если вы находитесь в строке 4, а последний относительный номер показывает 13, вы можете ввести:

14:   ..................... shortcut to :.,.+13

После ввода 14: просто наберите norm . и нажмите Введите

Начиная со следующей строки и до конца:

:+1,$ norm .

Третий способ:

:.,$s/\v\d+/&   NULL

ПРИМЕЧАНИЕ. Снова вкладка должна быть набрана буквально

:.,$ ..................... from this line to the end
\v ....................... very magic
\d+ ...................... match digits
& ........................ matched pattern

Может быть, лучший способ:

ID  MEMBER_TYP
--------------
1
2
3

По первому номеру 1

Ctrl-v ........... start visual block
} ................ extends selection till the end
A ................ starts insert at the end of line
<TAB> ............ literal tab
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...