Когда я копирую некоторый код с веб-страниц и вставляю его в VIM, я обнаруживаю, что он становится беспорядочным, как лестница
xxxxxx
xxxxxx
xxxxxx
xxxxxxxxxx
Поскольку он так часто портится, я думаю, что-то не так с моим, .vimrc
как показано ниже:
set number
set nocompatible
set nowritebackup
set noswapfile
syntax on
filetype indent on
filetype plugin on
filetype on
set background=light
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions=T
set fileencodings=utf-8,prc
set ruler
set incsearch
map gs :%s
set t_Co=256
:colorscheme evening
filetype plugin indent on
Обычно я пишу python в VIM. И помощь будет принята с благодарностью.
vim
copy-paste
SpawnST
источник
источник
Ответы:
Сделайте это раньше:
Затем после:
источник
gvim
; он включает и выключает их автоматически при вставке.http://vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste
Переключить авто-отступ для вставки кода
Фон
Если вы используете команды Vim для вставки текста, ничего неожиданного не происходит. Проблема возникает только при вставке из другого приложения и только тогда, когда вы не используете версию Vim с графическим интерфейсом. В консольной или терминальной версии Vim нет стандартной процедуры вставки текста из другого приложения. Вместо этого терминал может эмулировать вставку, вставляя текст в буфер клавиатуры, поэтому Vim считает, что текст был набран пользователем. После окончания каждой строки Vim может перемещать курсор, чтобы следующая строка начиналась с того же отступа, что и предыдущая. Однако это изменит отступ уже в вставленном тексте.
Вставить переключатель
Вставьте следующее в ваш vimrc (измените на любой ключ, который вы хотите):
Чтобы вставить из другого приложения:
Тогда существующий отступ вставленного текста будет сохранен.
Вам не нужно сначала запускать режим вставки, но если вы находитесь в обычном режиме и у вас есть отображение для F2, это отображение будет применяться, и функция «pastetoggle» не будет работать.
Некоторым людям нравится визуальная обратная связь, отображаемая в строке состояния следующей альтернативой для вашего vimrc:
Первая строка устанавливает отображение так, что нажатие клавиши F2 в обычном режиме инвертирует параметр «вставка», а затем отображает значение этого параметра. Вторая строка позволяет вам нажать F2 в режиме вставки, чтобы включить или выключить «вставку». Третья строка отображает, включена ли функция «вставить» в режиме вставки.
источник
Это автоиндент, который связывается с вами.
Попробуйте отключить их, когда вы вырезаете и вставляете свой код, а затем включите их снова, когда вы закончите.
источник
Наименьшее количество усилий для достижения этого (может быть вложено
.vimrc
):Затем вставьте свой код.
источник
'paste'
Вариант никогда не должен был быть постоянно установлен. Он отключает много вещей, в том числе сопоставления и сокращения. Кроме того, предыдущий ответ уже охватывает'paste'
вариант.