Почему функция Shift Insert работает полностью только в режиме вставки?

Почему функция Shift Insert работает полностью только в режиме вставки?

Только что попробовал вставить содержимое (в Git Bash на сервере CentOS) в файл с помощью vim.
Я только что открыл файл и попробовал использовать shift+ insert, и заметил, что первая половина (примерно) обрезается, но если я перевожу vim в режим вставки и нажимаю shift+, insertто все отлично вставляется.
Просто интересно, почему так?

Спасибо

решение1

Оба Shift+ Insertи "вклеивание" в терминал ведут себя схожим образом - они эмулируют нажатия клавиш.

Это важное различие, которое терминалы часто не в состоянии распознать: вы печатаете или вставляете?Примечание: некоторые терминалы поддерживают "вставить в скобках"modes, после комментария @Josh я даже наткнулся наплагин vimвставить в скобкахxtermкоторые могут вас заинтересовать.

Ваши вставленные данные будут утеряны до первого символа, который входит в режим вставки. Вы также можете обнаружить, что ваш курсор переместился и что другие части файла изменились (например: изменился регистр / был удален / и т. д.)...

Подводя итог, если вы вставляете текст, который хотите вставить в файл, сначала войдите в режим вставки.


Попробуйте скопировать следующий текст и вставить его в терминал, работающий в Vim (не в режиме вставки):

hello how are you

Результат будет таким же, как если бы вы набрали те же буквы на клавиатуре:

результат вставки в Vim

В этом случае вы остаетесь в режиме вставки...

Теперь попробуйте выйти из режима вставки Escи вставить следующее

/are
n

Это выполнит поиск по запросу «are»:

результат вставки в Vim

Теперь вставьте это:

:0
dG

О нет... всё пропало!

все ушли


Вы также обнаружите, что если у вас включены отступы, то вставка блока кода в vim (в режиме вставки) приведет к слишком большому отступу — отступ будет создан автоматически, и тогда ваш вставленный код будет включать отступ.

def my_print(message):
    print(message)
    print('done...')

вставка кода

Чтобы исправить это, используйте команды :set pasteи:set nopaste

вставка кода (режим вставки)

Связанный контент