Fitur vim yang agak menyebalkan adalah jika Anda berada dalam mode penyisipan dan melakukan pelengkapan otomatis (Ctrl-N), tombol panah ke bawah ke item yang diinginkan, dan tekan tombol Enter, kemudian memasukkan item tetapi juga menyisipkan baris baru yang Anda maka harus menghapus.
Apakah ada cara untuk memilih item dari daftar autocomplete tanpa mendapatkan baris baru yang tidak diinginkan?
vim
autocomplete
Tyler Durden
sumber
sumber
Jawaban:
Tergantung pada status menu sembulan tempat Anda berada (lihat
:help popupmenu-completion
). Saya mengerti dari pertanyaan Anda bahwa Anda dalam kondisi 2 (karena Anda telah menekan tombol panah untuk menemukan penyelesaian). Namun, perilaku default untuk Enterdi negara 2 adalah untuk memasukkan penyelesaian tanpa baris baru; apa yang Anda gambarkan biasanya perilaku status 1 (yaitu ketika Anda menggunakan Ctrl+ N/ Ctrl+ P.)Cara yang bekerja secara konsisten di semua negara adalah menggunakan Ctrl+ Y. Saya suka mengingat Y sebagai singkatan "ya, terima kata itu." Dimungkinkan juga untuk mulai mengetik teks yang seharusnya muncul setelah kata selesai, kecuali Anda telah memetakan kembali hal-hal seperti pada jawaban geedoubleya.
Dalam konteks yang sama, Anda dapat menekan Ctrl+ Euntuk membatalkan menu dan meninggalkan teks Anda seperti sebelum Anda memintanya. Jika Anda terbiasa dengan pasangan Ctrl+ Edan Ctrl+ Ydalam konteks lain (misalnya untuk menggulir ke atas atau ke bawah dalam mode normal, atau untuk memasukkan karakter di bawah atau di atas kursor dalam mode memasukkan), itu salah satu cara untuk mengingatnya di sini. Saya kira Anda juga bisa menganggapnya sebagai "keluar" dari menu atau serupa.
Lihat
:help popupmenu-keys
lebih lanjut.sumber
Secara pribadi saya menggunakan ini:
Siapa pun yang menggunakan plugin CtrlP mungkin merasa pemetaan ini nyaman.
sumber
Saya tahu ini sudah tua, tetapi jenis dukungan pada jawaban geedoubleya karena meskipun jawaban echristopherson informatif dan mengagumkan, jika ada yang menginginkan solusi cepat dan kotor:
sumber
Sebagai alternatif untuk menggunakan tombol panah Anda, aktifkan tombol
j
& Andak
untuk menggulir daftar autocomplete.Melakukan hal ini mengubah baris saat ini untuk mencocokkan kata yang dipilih saat Anda menggulir.
Oleh karena itu Anda tidak perlu menekan enter karena kursor masih dalam mode sisipkan di akhir kata yang diganti.
Untuk mengaktifkannya, tambahkan ini ke .vimrc Anda (Terima kasih kepada yang lain di stackoverflow):
Secara terpisah, alih-alih menggunakan tombol panah, Anda bisa mengulang
Ctrl-n
yang akan mengutuk melalui opsi (Ctrl-p
untuk mundur) dan mengganti pada baris saat ini saat bergerak, tidak perluEnter
atau vim pemetaan tombol.sumber