Есть два причины:
Для вставки в VIM
В то время как автоматический отклик включен, вы должны изменить К режим вставки , набрав:
:set paste
, вы можете изменить в «Вставить» и вставить свой код. После выполнения вставки введите:
:set nopaste
, чтобы отключить режим пасты. Поскольку это обычное и частые действия, VIM
VIM
предлагает переключение режима пасты:
set pastetoggle=<F2>
Вы можете изменить f2
на любой ключ, и теперь вы можете легко включить вкл. Отказ
Чтобы отключить автоматическую вставку комментариев, вы можете добавить эти строки в ваш Vimrc :
augroup auto_comment
au!
au FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
augroup END
VIM
также предоставляет регистрационный регистр для вас, чтобы вставить текст из системы буфера обмена. Вы можете использовать »* P
или » + p
в зависимости от вашей системы. На системе без X11, таких как OSX или Windows, вы должны использовать реестр *
. На системе X11, как Linux, вы можете использовать оба.
Дальнейшее чтение
Вклады были вставлены, потому что у вас включена автоматическое изобретение, и вы можете отключить это поведение, отключив автоматическое изобретение (: установить NOAI
), прежде чем вставить в терминал.
Комментарийные линии производятся путем автоматического комментирования и могут быть отключены, повернув его.
Альтернативы тем, которые вам следует получить желаемое поведение с помощью переключателей : установить пасту
, вставляя свой отформатированный код и : установить Nopaste
, чтобы восстановить нормальное поведение.
Используйте пасту vim. Вы хотите вставить то, что находится в буфере буфера обмена " + p
Это выбирает +
и вставляет его на место.
Если вы используете Linux, *
- это буфер X / среднего щелчка (последний выделенный текст).
Тогда vim знает, что это вставка.
В противном случае vim думает, что вы набрали вставляемые ключи и делают свой собственный автоматический отступ (поверх вашего скопированного отступа) до конца вставки.
В качестве примечания для того, чтобы это работало через SSH, вам необходимо установить параметр для вашего буфера обмена на общий доступ -Y
Подробнее см. man ssh
.
Причина была очень хорошо объяснена другими плакатами. Здесь я хотел бы предоставить решение, которое автоматически обрабатывает ситуацию.
Со следующим в вашем~\.vimrc
let &t_SI.= "\<Esc>[?2004h"
let &t_EI.= "\<Esc>[?2004l"
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
function! XTermPasteBegin()
set pastetoggle=<Esc>[201~
set paste
return ""
endfunction
вы можете свободно вставлять текст, не беспокоясь об автоматически -отступах.
Если вы работаете в tmux, то вместо этого нужно написать следующее
function! WrapForTmux(s)
if !exists('$TMUX')
return a:s
endif
let tmux_start = "\<Esc>Ptmux;"
let tmux_end = "\<Esc>\\"
return tmux_start. substitute(a:s, "\<Esc>", "\<Esc>\<Esc>", 'g'). tmux_end
endfunction
let &t_SI.= WrapForTmux("\<Esc>[?2004h")
let &t_EI.= WrapForTmux("\<Esc>[?2004l")
function! XTermPasteBegin()
set pastetoggle=<Esc>[201~
set paste
return ""
endfunction
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
Источник: Coderwall , если вы хотите узнать больше.