Ketika saya menyalin beberapa kode dari halaman web dan menempelnya ke VIM, saya merasa itu menjadi gaya berantakan seperti tangga sebagai berikut
xxxxxx
xxxxxx
xxxxxx
xxxxxxxxxx
Karena itu kacau begitu teratur jadi saya pikir mungkin ada sesuatu yang salah dengan saya .vimrc
yaitu sebagai berikut:
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
Biasanya saya menulis python di VIM. Dan bantuan akan dihargai.
vim
copy-paste
SpawnST
sumber
sumber
Jawaban:
Lakukan ini sebelumnya:
Kemudian setelah:
sumber
gvim
; ini menyalakan dan mematikan ini secara otomatis saat menempel.http://vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste
Beralih indentasi otomatis untuk menempelkan kode
Latar Belakang
Jika Anda menggunakan perintah Vim untuk menempelkan teks, tidak ada yang tidak terduga terjadi. Masalahnya hanya muncul ketika menempel dari aplikasi lain, dan hanya ketika Anda tidak menggunakan versi GUI Vim. Dalam versi konsol atau terminal Vim, tidak ada prosedur standar untuk menempelkan teks dari aplikasi lain. Sebagai gantinya, terminal dapat meniru menyisipkan dengan memasukkan teks ke buffer keyboard, jadi Vim berpikir teks telah diketik oleh pengguna. Setelah setiap baris berakhir, Vim dapat memindahkan kursor sehingga baris berikutnya dimulai dengan indentasi yang sama dengan yang terakhir. Namun, itu akan mengubah lekukan yang sudah ada dalam teks yang disisipkan.
Tempelkan sakelar
Masukkan yang berikut ini di vimrc Anda (ubah ke tombol apa pun yang Anda inginkan):
Untuk menempel dari aplikasi lain:
Kemudian lekukan yang ada dari teks yang disisipkan akan dipertahankan.
Anda tidak harus memulai mode penyisipan terlebih dahulu, tetapi jika Anda berada dalam mode normal dan memiliki pemetaan untuk F2, pemetaan itu akan berlaku, dan fungsi 'pastetoggle' tidak akan beroperasi.
Beberapa orang menyukai umpan balik visual yang diperlihatkan di baris status dengan alternatif berikut untuk vimrc Anda:
Baris pertama menetapkan pemetaan sehingga menekan F2 dalam mode normal akan membalikkan opsi 'tempel', dan kemudian akan menampilkan nilai opsi itu. Baris kedua memungkinkan Anda untuk menekan F2 saat dalam mode insert, untuk mengaktifkan dan menonaktifkan 'tempel'. Baris ketiga memungkinkan menampilkan apakah 'tempel' dihidupkan dalam mode sisipkan.
sumber
Autoindent-lah yang mengacaukan Anda.
Cobalah untuk menonaktifkannya ketika Anda memotong dan menempelkan kode Anda, dan kemudian mengaktifkannya lagi setelah Anda selesai.
sumber
Jumlah upaya terendah untuk mencapai ini adalah (dapat dimasukkan ke dalam
.vimrc
):Kemudian tempel kode Anda.
sumber
'paste'
pilihan tidak pernah dimaksudkan untuk ditetapkan secara permanen. Ini menonaktifkan banyak hal, termasuk pemetaan dan singkatan. Selain itu, jawaban sebelumnya sudah mencakup'paste'
opsi.