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


10

Можливо, я шукаю неправильний шлях, але мені не вдалося з’ясувати, як це зробити.

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

12.1 Пункт1
12.2 Пункт2
12.3 Пункт3

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

12.1 _ Пункт1
12.2 _ Пункт2
12.3 _ Пункт3

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

Щось тут мені не вистачає?

Відповіді:


18

Чому ви не виберете 4 стовпчики і не натисніть c?

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

Також ви можете використовувати :h normal:

V
2j
:'<,'>norm 7lRDone
<Esc>

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.
Крістіан Лонг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.