Baru saja mencoba menempelkan beberapa konten (dalam Git Bash di server CentOS) ke dalam file menggunakan vim.
Saya baru saja membuka file dan mencoba menggunakan shift+ insertdan saya perhatikan bahwa paruh pertama (kira-kira) terputus, tetapi jika saya mengatur vim untuk memasukkan mode dan menekan shift+ insertsemuanya akan disisipkan dengan sempurna.
Apakah hanya ingin tahu mengapa ini?
Terima kasih
Jawaban:
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):
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
Ini melakukan pencarian "adalah":
Sekarang tempel ini:
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.
Untuk memperbaikinya, gunakan perintah
:set paste
dan:set nopaste
sumber
set nopaste
? Saya harapkanunset paste
."+
register untuk berinteraksi dengan clipboard sistem, karena ini akan cenderung berperilaku lebih sehat. The downside adalah bahwa beberapa sistem atau membangun Vim dapat digunakan"*
sebagai gantinya, atau hanya tidak memiliki dukungan clipboard sistem, tetapi dalam pengalaman saya,"+
telah cukup dapat diandalkan.