Di Vim (7.2), ada perintah mode normal r
untuk mengganti satu karakter dengan yang lain. Misalnya, mengetik rX
akan menggantikan satu karakter di bawah kursor dengan X
dan kemudian mengembalikan Anda ke mode normal.
Apakah ada perintah mode normal untuk memasukkan satu karakter dan kemudian kembali ke mode normal?
Jawaban:
MelBurslan benar bahwa fitur ini tidak ada secara asli, tetapi membuat perintah yang ditentukan pengguna tidak benar-benar cara untuk membuatnya. Saya bermain-main selama beberapa menit dan membuat ini:
Yang menggunakan beberapa tipuan Vim yang melibatkan "menempatkan" teks dari register, dalam hal ini register "ekspresi". Ekspresi yang dicolokkan ke register adalah "
nr2char(getchar())
" yang akan mengembalikan string karakter tunggal.Alasan saya membangun pemetaan dengan cara ini adalah karena mendapatkan input pengguna "di tengah jalan" pemetaan itu rumit dan dapat berperilaku tak terduga; bahkan pemetaan ini akan menurunkan kursor ke area status sambil menunggu pengguna mengetik karakter.
sumber
Terima kasih kepada Johnny karena telah memberi kami jawaban luar biasa ini di komentar di bawah:
Itu memetakan Control + i untuk memasukkan satu karakter, dan itu melakukannya dengan sangat singkat.
Di file vimrc Anda, ini akan terlihat seperti:
Saya mengubah pemetaan saya untuk menggunakan ruang, dan Anda dapat mengubah milik Anda ke kunci pilihan Anda:
sumber
Sejauh yang saya tahu, tidak ada fungsi seperti itu dalam inkarnasi vi editor yang didistribusikan secara luas tetapi, vim memiliki fasilitas untuk membuat perintah khusus. Sebelumnya telah dibahas di sini: di utas ini
Anda mungkin dapat membuat perintah khusus Anda melakukan apa yang ingin Anda lakukan.
sumber
Cara sederhana untuk melakukan ini adalah menggunakan perintah Cut xand Put p. Katakan itu
*
adalah karakter yang ingin Anda masukkan. Masukkan menggunakan i * Esc. Lalu pukul x. Itu akan memotong karakter. Sekarang, Anda dapat menekan puntuk meletakkan karakter tunggal. Jika Anda harus memasukkan karakter yang 300 kali, Anda dapat mengetik:300p
.sumber