Quando copio algum código de páginas da Web e colo no VIM, percebo que ele se torna um estilo de bagunça, como uma escada, da seguinte maneira
xxxxxx
xxxxxx
xxxxxx
xxxxxxxxxx
Como ele mexia tão regularmente, acho que talvez haja algo errado com o meu, .vimrc
que é o seguinte:
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
Normalmente eu escrevo python no VIM.E ajuda seria apreciada.
vim
copy-paste
SpawnST
fonte
fonte
Respostas:
Faça isso antes:
Então depois:
fonte
gvim
; ativa e desativa automaticamente ao colar.http://vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste
Alternar recuo automático para colar código
fundo
Se você usar os comandos do Vim para colar texto, nada de inesperado ocorrerá. O problema só surge ao colar a partir de outro aplicativo e somente quando você não está usando uma versão GUI do Vim. Em uma versão de console ou terminal do Vim, não há procedimento padrão para colar texto de outro aplicativo. Em vez disso, o terminal pode emular a colagem inserindo texto no buffer do teclado, para que o Vim pense que o texto foi digitado pelo usuário. Após o término de cada linha, o Vim pode mover o cursor para que a próxima linha comece com o mesmo recuo que a última. No entanto, isso mudará a indentação já no texto colado.
Colar alternar
Coloque o seguinte no seu vimrc (mude para a chave que desejar):
Para colar de outro aplicativo:
Em seguida, o recuo existente do texto colado será mantido.
Você não precisa iniciar o modo de inserção primeiro, mas se estiver no modo normal e tiver um mapeamento para F2, esse mapeamento será aplicado e a função 'pastetoggle' não funcionará.
Algumas pessoas gostam do feedback visual mostrado na linha de status pela seguinte alternativa para o seu vimrc:
A primeira linha define um mapeamento para que pressionar F2 no modo normal inverta a opção 'colar' e, em seguida, mostre o valor dessa opção. A segunda linha permite pressionar F2 no modo de inserção, para ativar e desativar 'colar'. A terceira linha permite exibir se 'colar' está ativado no modo de inserção.
fonte
É o autoindent que está mexendo com você.
Tente desabilitá-los quando você recortar e colar seu código e habilitá-los novamente quando terminar.
fonte
A menor quantidade de esforço para conseguir isso é (pode ser aplicada
.vimrc
):Em seguida, cole seu código.
fonte
'paste'
opção nunca foi criada para ser definida permanentemente. Ele desativa muitas coisas, incluindo mapeamentos e abreviações. Além disso, uma resposta anterior já cobre a'paste'
opção.