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