В терминальном vim вставка данных из буфера обмена часто портит отступ кода. Я просто знал, что если я использую :set paste
отступ не сломан. Хотя, после вставки данных, я должен сделать :set nopaste
снова? Что если я не пойму, какая проблема возникнет?
19
Ответы:
Как написали другие, вы не хотите оставлять «вставку» установленной. Я просто хотел отметить, что с хорошим эмулятором терминала и правильно скомпилированным и сконфигурированным
vim
вам не нужно менять «вставку». Вам нужен хороший эмулятор терминала, такой как xterm или GNOME Terminal, vim с включенной функцией X11 и опцией 'mouse', установленной в 'a'. Затемvim
«узнает», когда вы вставляете мышью, и эффективно установит и отменит опцию «вставить» для вас.Один из способов получить
vim
с помощью функции X11 - запуститьgvim
с-v
опцией или создать псевдоним,Затем положить
в вашем ~ / .vimrc.
источник
Copy
будет недоступен или вообще не будет отображаться, если не выбран какой-либо текст. Как вы выбираете текст для копирования?В этом сообщении есть мой любимый ответ: https://coderwall.com/p/if9mda/automatics-set-paste-mode-in-vim-when-pasting-in-insert-mode
В основном, если вы запускаете в режиме вставки и используете Ctrl + Shift + V или вставку правой кнопкой мыши с помощью мыши, Vim обнаруживает, что это пришло из терминала, и автоматически устанавливает режим вставки, а затем отменяет его, когда вы закончите, чтобы вы не потеряли переназначенные ключи. (который не может работать в режиме вставки, потому что он записывает необработанные данные), и вы вернетесь в «нормальное» состояние, когда это будет сделано.
Просто для vim (вставьте свой .vimrc)
Если вы используете Vim под Tmux (все еще идет в .vimrc)
источник
let &t_SI .= "\<Esc>[?xxxxx"
строк обнаруживает комбинацию клавиш для вставки? Работает ли это для Mac, а также учитывая другой ярлык?Как предположил romainl, в документации объясняется, что установка этого
'paste'
параметра отключает несколько других параметров, и вы наверняка обнаружите, что раньше, чем позже, это вызовет проблемы для вас. По этой причине есть'pastetoggle'
вариант. Видеть:источник
Если что-то существует, оно должно иметь свое значение. Вы должны внимательно изучить документацию vim, которая очень полезна.
Как только вы прочитаете, вы можете захотеть это:
Я надеюсь, что вы найдете этот пост полезным :)
источник
Когда вы вставляете в vim, IIRC думает, что вы набрали все эти символы самостоятельно. Так что, если авто-отступ включен, он будет делать отступы для вас, но вставленный текст обычно содержит отступ, так что отступ действительно "испорчен". Переключение в режим вставки отключает такие вещи, как авто-отступ.
Если вам нравится автоматический отступ при вводе, вы должны переключить его обратно на nopaste после того, как закончите вставку. Попробуйте и обратите внимание, как вы должны делать все отступы вручную в режиме вставки.
источник