Действительно ли возможно вставить в режиме вставки в Vim?
В режиме вставки нажмите CTRL-R {регистр}
Примеры:
CTRL-R *
вставит в содержимое буфера обмена CTRL-R "
(безымянный регистр) вставляет последнее удаление или выдергивание. Чтобы найти это в справке vim, введите :h i_ctrl-r
Нет, не напрямую. Что вы можете сделать, так это быстро выйти из режима вставки для одной операции в обычном режиме с помощью Ctrl-O , а затем вставить оттуда, что вернет вас обратно в режим вставки.
Комбинация клавиш: Ctrl-O p
РЕДАКТИРОВАТЬ: Интересно. Похоже, что есть способ, как перечислили несколько других людей.
Да. В Windows Ctrl + V и в Linux нажатие обеих кнопок мыши почти одновременно.
В Windows я думаю, что эта строка в моем _vimrc, вероятно, делает это:
source $VIMRUNTIME/mswin.vim
В Linux я не помню, как я это сделал. Похоже, я удалил какую-то строку из файла .vimrc по умолчанию.
Если вы не хотите, чтобы Vim искажал форматирование во входящем вставленном тексте, вы также можете рассмотреть возможность использования: :set paste
. Это предотвратит повторное введение кода в Vim. После завершения вставки :set nopaste
вернется к обычному поведению.
Также можно переключать режим с помощью одной клавиши, добавив что-то вроде set pastetoggle=
в .vimrc. Более подробно о переключении автоиндента можно прочитать здесь.
Если вы настроили Vim на использование системного буфера обмена (: set clipboard = un named
), то любой текст, который вы копируете в Vim, можно вставить с помощью Shift + Insert . Shift + Insert - это просто комбинация клавиш для вставки на уровне ОС ( Ctrl + Insert является соответствующей «копией»).
Вы также можете использовать среднюю кнопку мыши для вставки в режиме вставки (только для Linux).