У меня проблема с vim
, когда я вставляю что-то, оно помещает их в каждую строку. Как я могу установить настройки по умолчанию vim
.
Если Вы вставляете от системного буфера обмена, vim
думает, что вставленный текст является вводом данных пользователем и, если confiured для обеспечения автоматического отступа, vim
делает, это - задание и автоматически располагает код с отступом.
можно выключить тот автоматический отступ при вставке кода в vim
непосредственно. Введите это в командном режиме:
:set paste
Теперь, Ваш вставляемый код должен быть записан без отступа. Чтобы повторно включить автоматический отступ, снова используйте:
:set nopaste
К simplfy, что, можно определить ярлык в Вас .vimrc
следующим образом:
set pastetoggle=<F2>
Теперь, когда Вы нажимаете F2 в режиме вставки для имения желаемого поведения. Тогда нажмите снова F2 , для работы с автоматическим отступом как прежде.
Можно вставить непосредственно от буфера обмена ("*
) энергия использования paste
(p
) инструкция: "*p
, не имея необходимость входить INSERT
режим.
, Так как вышеупомянутое не будет работать, когда Вы будете подключены к удаленному терминалу, предложение хаоса было бы Вашим наилучшим вариантом.
неослабленный энергией добавляет хороший ярлык yo
и yO
, который автоматически делает set paste
, вставляет новую строку после/прежде чем текущей строки курсора и затем set nopaste
, после того как Вы выходите INSERT
режим.
Я узнал об этой изящной автоматизации от coderwall, напишите следующее в вашем .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
, и он будет включать и выключать режим вставки для вас.
Использование vim
внутри tmux
может быть немного сложным, как и вы можете (я использую «может», потому что мне не нужно дважды экранировать, когда Я внутри 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()