Заменить текст в режиме визуального блока

10

Возможно, я ищу неправильный путь, но мне не удалось выяснить, как это сделать.

Вот сценарий: у меня есть список в текстовом файле, где я хочу вставить одно и то же слово в несколько строк, вот пример текста:

12.1 Item1
12.2 Item2
12.3 Item3

Теперь я визуально-блок отмечаю 8-й столбец, обозначенный подчеркиванием ниже, и намереваюсь заменить часть пробела Doneбез перемещения столбца элемента:

12.1 _ Item1
12.2 _ Item2
12.3 _ Item3

Я ожидал, что смогу перейти в режим замены, но я могу войти только в insert ( I), append ( A) или change-mode ( c). Режим изменения близок к тому, что я хочу: если я знаю длину слова, блок может быть установлен на ту же ширину.

Есть что-то, чего я здесь не хватает?

Тор
источник

Ответы:

18

Почему бы вам не выбрать 4 столбца и нажать c?

<C-v>
2j
3l
cDone
<Esc>

Также вы можете использовать :h normal:

V
2j
:'<,'>norm 7lRDone
<Esc>
romainl
источник
1
Это работает Done, но что, если я хочу написать что-то еще, я хочу быть свободным от подсчета символов, если это возможно.
Тор
1
:normтогда твой друг.
romainl
Да, второе решение может быть использовано для удобного картирования. Спасибо.
Тор
1

Если вы хотите заменить в визуальном блоке, вы можете использовать vis.vim плагин .

http://vim.wikia.com/wiki/Applying_substitutes_to_a_visual_block

Установить:

Загрузите файл vis.vba.gz с http://www.drchip.org/astronaut/vim/index.html#VIS.

# Open vis.vba.gz in Vim 7.1 or later.
vim vis.vba.gz

# Source the open file.
:so %

# Quit Vim
:q

После установки:

ctrl-v to enter visual-block mode
Move to select the block you want
:B s/pattern/newtext/

Более того, вы можете выполнять любую команду Ex для визуального блока, а не только для замены. Например :B !sort.

Кристиан Лонг
источник
Хороший плагин, я буду использовать его :-). Но как я могу использовать его для замены произвольных столбцов?
Тор
Правильно, у вас все еще есть проблема быстрого задания ширины визуального блока в соответствии со столбцами произвольной ширины. Я обычно делаю <count> wили eвыбираю несколько столбцов быстро, затем настраиваюсь с помощью hили l.
Кристиан Лонг