2016-12-12 3 views
7

Когда я копирую и пропускаю блок кода в Vim, каждая строка получает отступы на одну строку. Например, у меня есть этот источник:Vim откладывает каждую строку кода при копировании-вклеивании

print "Hello" 
    print "World" 
    print "I'm copying" 
    print "and pasting" 

который получает перемешаны при вставке в Vim:

print "Hello" 
     print "World" 
      print "I'm copying" 
       print "and pasting" 

Для копирования длинных строк кода, это очень сложно, потому что все выходит из выравнивания (не хорошо питон).

Вот мой vimrc. В настоящее время он автоматически отступы на новых линиях и заменяет вкладки стандартными 4 пробелами.

filetype plugin indent on 
" show existing tab with 4 spaces width 
set tabstop=4 
" when indenting with '>', use 4 spaces width 
set shiftwidth=4 
" On pressing tab, insert 4 spaces 
set expandtab 

Хотя эта конфигурация работает, что-то вызывает проблему с копией. Как это можно зафиксировать, но все же сохранить поведение, которое я определил?

+0

Вы пробовали использовать вариант вставки? ': установить пасту', прежде чем вставлять код в vim –

+1

Возможный дубликат [Отключение автоматического отступа при вставке текста в vim] (http://stackoverflow.com/questions/2514445/turning-off-auto-indent-when- вставка-текст-в-vim) –

+0

': r! cat', за которым следует'^D', избегает необходимости переключения из любых режимов или установки/отмены настроек. – sideshowbarker

ответ

7

Используйте :set paste для переключения в режим вставки.

This article explains paste mode

Это было сделано специально для вставки текста в Vim, чтобы он не вызовет каких-либо входных отображений. Не забудьте указать :set nopaste, когда вы закончите, чтобы вернуть свои отображения.

 Смежные вопросы

  • Нет связанных вопросов^_^