Baik Shift+ Insertdan " paste " ke terminal berperilaku dengan cara yang sama - mereka meniru penekanan tombol.
Ini adalah perbedaan penting yang seringkali tidak mungkin dilakukan oleh terminal - apakah Anda mengetik atau menempel? Catatan : beberapa terminal mendukung mode " bracketed paste ", setelah komentar @ Josh saya bahkan menemukan plugin vim paste bracketed di xterm yang mungkin Anda minati.
Data yang Anda tempelkan akan hilang hingga karakter pertama yang memasuki mode penyisipan. Anda juga dapat menemukan bahwa kursor Anda telah bergerak dan bagian-bagian lain dari file telah berubah (misalnya: kasing / dihapus / dll) ...
Singkatnya, jika Anda menempelkan teks yang ingin Anda masukkan ke dalam file, masukkan mode insert terlebih dahulu.
Coba salin teks berikut dan tempel ke terminal yang menjalankan Vim (tidak dalam mode sisipan):
hello how are you
Hasilnya sama dengan mengetik huruf yang sama pada keyboard Anda:
Dalam hal ini, itu membuat Anda dalam mode memasukkan ...
Sekarang coba keluar dari mode penyisipan - Esc- dan tempel yang berikut
/are
n
Ini melakukan pencarian "adalah":
Sekarang tempel ini:
:0
dG
Oh tidak ... semuanya hilang!
Anda juga akan menemukan bahwa jika Anda telah mengaktifkan indentasi, maka menempelkan blok kode ke vim (dalam mode insert) akan membuat indentasi terlalu banyak - indentasi otomatis, dan kemudian kode yang Anda tempelkan akan memasukkan indentasi.
def my_print(message):
print(message)
print('done...')
Untuk memperbaikinya, gunakan perintah :set paste
dan:set nopaste