2016-12-12 21 views
7

Kiedy kopiuję i przekraczam blok kodu w Vim, każda linia zostanie wcięta o jeden. Na przykład, mam tego źródła:Vim wcina każdy wiersz kodu podczas kopiowania-wklejania

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

który dostaje pomieszane podczas wklejania w vim:

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

do kopiowania długie linie kodu, jest to bardzo frustrujące, ponieważ wszystko wymyka się spod wyrównania (nie biorąc pod uwagę pyton).

Oto mój vimrc. Obecnie automatycznie wcina nowe znaki i zamienia tabulatory na standardowe 4 spacje.

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 

Chociaż config działa, coś jest przyczyną problemu kopiuj-wklej. Jak można to naprawić, ale zachowuję zachowania, które zdefiniowałem?

+0

Czy próbowałeś użyć opcji wklejania? ': set paste' przed wklejeniem kodu w vim –

+1

Możliwy duplikat [Wyłączanie automatycznego wcięcia podczas wklejania tekstu do vima] (http://stackoverflow.com/questions/2514445/turning-off-auto-indent-when- wklejając-tekst-w-vim) –

+0

': r! cat', po którym następuje'^D', unika konieczności przełączania się z dowolnego trybu lub ustawiania/wyłączania opcji. – sideshowbarker

Odpowiedz

7

Użyj :set paste, aby przejść do trybu wklejania.

This article explains paste mode

Został on wykonany specjalnie do wklejania tekstu do vim, dlatego nie powoduje żadnych mapowania wejściowych. Pamiętaj, aby :set nopaste, gdy skończysz, aby odzyskać swoje odwzorowania.

Powiązane problemy