БЫСТРЫЙ ИТОГ ОТВЕТА: Я просто изложу здесь ответ в простой форме. Комментариев так много, что эта ветка тонет. 1) Убедитесь, что в вашей версии Vim включен + visualextra, набрав: ver в Vim. 2) Вы вставляете, сначала отмечая материал, который хотите отредактировать, а затем нажимаете I (заглавная i) - строчные буквы я не буду работать. 3) Как только вы это сделаете, это может выглядеть так, как будто вы вставляете только первую строку, но когда вы закончите, нажмите ESC и j, затем текст будет скопирован в другие строки. Вот как это происходит у меня.
Зет
Ответы:
211
Попробуй это
После выбора блока текста нажмите Shift+ iили заглавную I.
Строчные буквы iне работают.
Затем введите то, что вы хотите, и, наконец, чтобы применить это ко всем строкам, Escдважды нажмите .
Если это не сработает ...
Проверьте, +visualextraвключили ли вы в своей версии Vim.
Вы можете сделать это, набрав :verи прокручивая список функций. (Вы можете скопировать и вставить его в буфер и выполнить инкрементный поиск, потому что формат нечетный.)
Включение этого параметра выходит за рамки этого вопроса, но я уверен, что вы можете где-нибудь его найти.
Вы также должны нажать escape, чтобы выйти из режима вставки, прежде чем текст будет дублирован.
Brandon Joyce
20
Кто-нибудь видел, чтобы это не работало? У меня есть немодифицированная установка vim на CentOS. Я нажимаю ctrl + v, нажимаю несколько раз j и вижу, как курсор выделяет первый символ из нескольких строк. Нажимаю shift + i. Курсор перемещается к первому символу первой строки, но я вернулся в обычный режим. Я знаю это, потому что если я нажму «a», символ сдвинется вправо и будет написано «- INSERT -». Если я ввожу несколько символов и нажимаю escape, это не применяется к другим строкам.
Тайлер Кольер
2
@TylerCollier У меня проблема с Ubuntu 14.04 в digitalocean. Прокомментируйте, если вы нашли решение.
Зак Берт,
2
@ZacharyBurt По умолчанию vim, установленный с Ubuntu 14.04 (установленный как vi), не включает эту visualextraфункцию, поэтому вставка блока там не работает. sudo apt-get install vimвводит более полнофункциональную версию, на которой visualextraактивируется. @TylerCollier Это может быть та же проблема при установке CentOS: проверьте вывод, vim --versionчтобы увидеть полный список активированных функций.
После нажатия ctrl + vвы можете нажать, jчтобы быстро выбрать строку (строки) ниже текущей позиции, или нажать, kчтобы быстро выбрать строку (строки) выше текущей позиции. Вы также можете использовать shiftклавишу с ошибками upили downдля выбора.
tyler.frankenstein
1
Из всех ответов это единственный, который у меня сработал. Я на Mac использую установку brew
Дэниел Каплан
Я жаловался в течение многих лет , что я не мог легко я nsert (например , гр висящий) в блоке выбора. Так что это с большой буквы i, я поражен. Я использовал :normal iINPUT<CR>для ввода в начале строк. Большое спасибо за это!
Тим Виси
Я не думаю, что вам нужно дважды нажимать esc. Если вы нажмете что-нибудь после esc, он автоматически обновит текст. Если нет, он сделает это примерно за полсекунды.
Шахбаз
29
У вас также может быть вариант использования, когда вы хотите удалить блок текста и заменить его.
Как это
Hello World
Hello World
Вы можете выбрать визуальный блок перед "W" и нажать Shift+ i- Тип "Cool" - Hit, ESCа затем удалить "World" путем выбора визуального блока.
В качестве альтернативы, более крутой способ сделать это - просто визуальным блоком выбрать «Мир» в обеих строках. Введите cдля change. Теперь вы в insertрежиме. Вставьте то, что хотите, и нажмите ESC. Оба отражаются с меньшими нажатиями клавиш.
Ответы:
Попробуй это
После выбора блока текста нажмите Shift+ iили заглавную I.
Строчные буквы iне работают.
Затем введите то, что вы хотите, и, наконец, чтобы применить это ко всем строкам, Escдважды нажмите .
Если это не сработает ...
Проверьте,
+visualextra
включили ли вы в своей версии Vim.Вы можете сделать это, набрав
:ver
и прокручивая список функций. (Вы можете скопировать и вставить его в буфер и выполнить инкрементный поиск, потому что формат нечетный.)Включение этого параметра выходит за рамки этого вопроса, но я уверен, что вы можете где-нибудь его найти.
источник
A
тоже!vi
), не включает этуvisualextra
функцию, поэтому вставка блока там не работает.sudo apt-get install vim
вводит более полнофункциональную версию, на которойvisualextra
активируется. @TylerCollier Это может быть та же проблема при установке CentOS: проверьте вывод,vim --version
чтобы увидеть полный список активированных функций.источник
ctrl + v
вы можете нажать,j
чтобы быстро выбрать строку (строки) ниже текущей позиции, или нажать,k
чтобы быстро выбрать строку (строки) выше текущей позиции. Вы также можете использоватьshift
клавишу с ошибкамиup
илиdown
для выбора.i
, я поражен. Я использовал:normal iINPUT<CR>
для ввода в начале строк. Большое спасибо за это!У вас также может быть вариант использования, когда вы хотите удалить блок текста и заменить его.
Как это
Вы можете выбрать визуальный блок перед "W" и нажать Shift+ i- Тип "Cool" - Hit, ESCа затем удалить "World" путем выбора визуального блока.
В качестве альтернативы, более крутой способ сделать это - просто визуальным блоком выбрать «Мир» в обеих строках. Введите cдля
change
. Теперь вы вinsert
режиме. Вставьте то, что хотите, и нажмите ESC. Оба отражаются с меньшими нажатиями клавиш.источник
ESC
тогда во всей отмеченной строке будет отображаться символ, который вы вводите.если вы хотите добавить новый текст до или после выбранного столбца:
источник
jj
распространение изменений на все строки ниже было последним, что мне не хватало!jj
это убийца!