Отключение автоматического отступа при вставке текста в vim - PullRequest
1071 голосов
/ 25 марта 2010

Я прилагаю усилия, чтобы выучить Vim.

Когда я вставляю код в свой документ из буфера обмена, я получаю дополнительные пробелы в начале каждой новой строки:

line
  line
    line

Я знаю, что вы можете отключить автоматический отступ, но я не могу заставить его работать, потому что у меня есть некоторые конфликтующие настройки или что-то в этом роде (что выглядит довольно очевидно в моем .vimrc, но, кажется, не имеет значения, когда я их вынимаю ).

Как отключить автоматический отступ, когда я вставляю код, но при написании кода у меня по-прежнему есть автоматический отступ vim? Вот мой .vimrc файл:

set expandtab  
set tabstop=2  
set shiftwidth=2  
set autoindent  
set smartindent  
set bg=dark  
set nowrap  

Ответы [ 21 ]

0 голосов
/ 15 апреля 2017

Другой способ вставить - через <CR> и сбросить содержимое регистра (здесь это глобальный регистр). См .: :h i_ctrl-r и h i_CTRL-R_CTRL-O.

Из справочной документации vim:
Insert the contents of a register literally and don't auto-indent. Does the same as pasting with the mouse<MiddleMouse>. Does not replace characters! The '.' register (last inserted text) is still inserted as typed.{not in Vi}

Чтобы вставить содержимое в vim без автоматического отступа, используйте <CR><CO>* в большинстве систем Unix.

Примечание: это работает, только если vim скомпилирован с clipboard.

...