Shift + Insert и « вставка » в терминал ведут себя одинаково - они эмулируют нажатия клавиш.
Это важное различие, которое часто невозможно сделать терминалами - вы печатаете или вставляете? Примечание: некоторые терминалы поддерживают режимы " вставки в скобках ", после комментария @ Джоша я даже наткнулся на вставку в скобках vim в xterm, которая может вас заинтересовать.
Ваши вставленные данные будут потеряны до первого символа, который входит в режим вставки. Вы также можете обнаружить, что ваш курсор перемещен и что другие части файла изменились (например: изменен регистр / был удален / и т.д.)...
Таким образом, если вы вставляете текст, который хотите вставить в файл, сначала войдите в режим вставки.
Попробуйте скопировать следующий текст и вставить его в терминал с Vim (не в режиме вставки):
hello how are you
Результат такой же, как при наборе одинаковых букв на клавиатуре:
В этом случае он оставляет вас в режиме вставки ...
Теперь попробуйте выйти из режима вставки - Esc - и вставьте следующее
/are
n
Это выполняет поиск "являются":
Теперь вставьте это:
:0
dG
О нет ... все прошло!
Вы также обнаружите, что если у вас включен отступ, то вставка блока кода в vim (в режиме вставки) сделает слишком много отступов - это автоматически сделает отступ, а затем вставленный код будет содержать отступы.
def my_print(message):
print(message)
print('done...')
Чтобы это исправить, используйте команды :set paste
и :set nopaste