#linux #vim #vi
#linux #vim #vi
Вопрос:
Я хочу отредактировать несколько строк в VIM.Я знаю, что существует редактирование визуальных блоков (например, CTRL V —-> I ——> <Внести необходимые изменения> ——> ESC). Но, к удивлению, это не работает в случае ввода новой строки.
Например, я хочу создать следующий код
if(i==1):
if(i==2):
к чему-то вроде
if(i==1):
print("say Hello")
if(i==2):
print("say Hello")
Надеясь найти способ сделать это без слишком большого количества команд.
Заранее спасибо.
🙂
Ответ №1:
Самый простой подход заключается в использовании :help .
…
- Откройте новую строку под первой строкой и введите то, что вам нужно:
o print("say Hello")
- Выйдите из режима вставки:
<Esc>
- Переместите курсор вниз на одну строку:
j
- И повторите последнее редактирование:
.
Короче говоря:
o print("say Hello")<Esc>j.
Если вы абсолютно хотите использовать визуальный режим, вот другой способ:
- Выберите строки:
vj
- Нажмите
:
, чтобы войти в режим командной строки, при этом диапазон, соответствующий визуальному выбору, автоматически вставляется для вас::'<,'>
- Используется
:help :s
для замены EOL новой строкой, за которой следует желаемый текст в каждой строке диапазона::'<,'>s/$/r print("say Hello")<CR>
Комментарии:
1. Как насчет использования глобальной команды?
:g/./normal o print("say Hello")
или визуальный выбор и запуск:'<,'>g/./normal o print("say Hello")
?