Paste dengan Indent Berlebih di VIM

Pernah mengalami kasus dimana kita me-copy barisan kode dari browser kemudian kita paste-kan di VIM, tapi hasil paste-nya malah jadi tidak karuan. Teks yang sudah ber-indent rapi malah jadi ber-indent tidak karuan.

Ah, bingung bagaimana saya menjelaskannya. Begini saja, kita lihat sepenggal contoh kode sederhana berikut.

Teks asal:

local i = 0
local max = 10
while true do
 if i <= max then
   break
 end
 print(i)
 i = i + 1
end 

Teks hasil paste di VIM[0]:

local i = 0
local max = 10
while true do
        if i <= max then
                    break
                        end
                            print(i)
                                i = i + 1
                            end

Cukup menyebalkan bukan?

Penyebab

Ini dikarenakan pengaturan auto-indent sedang aktif. Sila kita cek file .vimrc masing-masing.

Solusi

Sebelum mem-paste, kita bisa mengetikkan perintah :set paste dalam modus normal. Lakukan paste, lalu kembali ke kondisi sebelumnya dengan perintah :set nopaste.

Kita juga bisa menggunakan tombol keyboard agar tak perlu mengetikkan perintah sebelum dan sesudah mem-paste. Di file .vimrc kita tambahkan baris berikut

set pastetoggle=<F10>

Sila sesuaikan tombolnya. Disini kita menggunakan tombol F10.

Jangan lupa, tekan tombol ini sebelum dan sesudah mem-paste.


[0] buka VIM, masuk ke modus Insert, lalu lakukan paste

Iklan

Silahkan berkomentar ...

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s