Kiedy kopiuję jakiś kod ze stron internetowych i wklejam go do VIM, okazuje się, że staje się bałaganem, jak drabina, w następujący sposób
xxxxxx
xxxxxx
xxxxxx
xxxxxxxxxx
Ponieważ jest tak regularnie pomieszany, więc myślę, że może coś jest nie tak z moim, .vimrc
jak poniżej:
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
Zwykle piszę Python w VIM i pomoc byłaby mile widziana.
vim
copy-paste
SpawnST
źródło
źródło
Odpowiedzi:
Zrób to wcześniej:
Następnie po:
źródło
gvim
; włącza je i wyłącza automatycznie podczas wklejania.http://vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste
Przełącz automatyczne wcięcie dla wklejania kodu
tło
Jeśli użyjesz poleceń Vima do wklejenia tekstu, nic nieoczekiwanego nie nastąpi. Problem pojawia się tylko podczas wklejania z innej aplikacji i tylko wtedy, gdy nie używasz GUI w wersji Vima. W wersji Vima na konsolę lub terminal, nie ma standardowej procedury wklejania tekstu z innej aplikacji. Zamiast tego terminal może emulować wklejanie, wstawiając tekst do bufora klawiatury, więc Vim uważa, że tekst został wpisany przez użytkownika. Po zakończeniu każdego wiersza Vim może przesunąć kursor, więc następny wiersz zaczyna się od tego samego wcięcia co ostatni. Zmieni to jednak wcięcie już w wklejonym tekście.
Wklej przełącznik
Umieść w vimrc następujące polecenie (zmień na dowolny klucz, jaki chcesz):
Aby wkleić z innej aplikacji:
Wtedy istniejące wcięcie wklejonego tekstu zostanie zachowane.
Nie musisz najpierw uruchamiać trybu wstawiania, ale jeśli jesteś w trybie normalnym i masz mapowanie dla F2, to mapowanie zostanie zastosowane, a funkcja „pastetoggle” nie będzie działać.
Niektórym podoba się wizualna informacja zwrotna wyświetlana w linii statusu przez następującą alternatywę dla twojego vimrc:
Pierwszy wiersz ustawia odwzorowanie tak, że naciśnięcie F2 w trybie normalnym odwróci opcję „wklej”, a następnie wyświetli wartość tej opcji. Druga linia pozwala naciskać F2 w trybie wstawiania, aby włączać i wyłączać „wklejanie”. Trzeci wiersz umożliwia wyświetlenie, czy „wklejanie” jest włączone w trybie wstawiania.
źródło
Jest to autoindent, który z tobą bawi.
Spróbuj je wyłączyć podczas wycinania i wklejania kodu, a następnie włącz je ponownie po zakończeniu.
źródło
Najmniejszy wysiłek, aby to osiągnąć, to (można włożyć
.vimrc
):Następnie wklej swój kod.
źródło
'paste'
opcja nigdy nie była przeznaczona na stałe. Wyłącza wiele rzeczy, w tym mapowania i skróty. Poza tym poprzednia odpowiedź obejmuje już tę'paste'
opcję.