Просто попытался вставить некоторый контент (в Git Bash на сервере CentOS) в файл, используя vim.
Я просто открыл файл и попытался использовать shift+, insertи я заметил, что первая половина (примерно) обрезается, но если я установил vim для режима вставки и нажал shift+, insertвсе вставляется отлично.
Было просто интересно, почему это?
Благодарность
Ответы:
И Shift+, Insertи « вставка » в терминал ведут себя одинаково - они эмулируют нажатия клавиш.
Это важное различие, которое зачастую невозможно сделать терминалам - вы печатаете или вставляете? Примечание : некоторые терминалы поддерживают режимы вставки в скобках ", после комментария @ Джоша я даже наткнулся на вставку в скобках vim в xterm, которая может вас заинтересовать.
Ваши вставленные данные будут потеряны до первого символа, который входит в режим вставки. Вы также можете обнаружить, что курсор перемещен и что другие части файла изменились (например: изменен регистр / был удален / и т. Д.) ...
Таким образом, если вы вставляете текст, который хотите вставить в файл, сначала войдите в режим вставки.
Попробуйте скопировать следующий текст и вставить его в терминал с Vim (не в режиме вставки):
Результат такой же, как при наборе одинаковых букв на клавиатуре:
В этом случае он оставляет вас в режиме вставки ...
Теперь попробуйте выйти из режима вставки Esc- и вставить следующее
Это выполняет поиск "являются":
Теперь вставьте это:
О нет ... все прошло!
Вы также обнаружите, что если у вас включен отступ, то вставка блока кода в vim (в режиме вставки) сделает слишком много отступов - это автоматически сделает отступ, а затем вставленный код будет содержать отступы.
Чтобы исправить это, используйте
:set paste
и:set nopaste
командыисточник
set nopaste
? Я бы ожидалunset paste
."+
регистр для взаимодействия с системным буфером обмена, поскольку он будет вести себя более разумно. Недостатком является то, что некоторые системы или сборки Vim могут использовать"*
вместо этого или просто не иметь поддержки системного буфера обмена, но, по моему опыту,"+
это было довольно надежно.