Terkadang saat memasukkan perintah dalam mode normal Anda dapat membuat kesalahan ketik, misalnya jika saya ingin mengetik 10dk
, saya mungkin secara tidak sengaja mulai mengetik 19d
.
Karena perintah belum selesai / dilakukan, apakah mungkin untuk menghapus kunci yang salah menggunakan backspace, dengan demikian:, 19d<backspace><backspace>0dk
bukannya harus menekan escape dan coba lagi perintah?
Pertanyaan sampingan: Apakah ada istilah Vim untuk struktur data yang memegang perintah saat ini sebelum dilakukan?
vimrc
normal-mode
command-history
HellaMad
sumber
sumber
Jawaban:
Tidak ada cara untuk melakukannya dan itu normal bahwa tidak ada: perintah mode normal umumnya cukup singkat dan dapat dibatalkan Escjika Anda mengacaukannya.
Solusi yang mungkin dilakukan adalah menggunakan
:normal
perintah. Itu membuat proses lebih lama tetapi misalnya jika Anda mengetikkan:normal 10j
baris perintah, Vim akan mengeksekusi10j
seolah-olah Anda mengetiknya dalam mode normal. (Lihat:h :normal
)Anda juga dapat menambahkan baris ini ke
.vimrc
:Mereka membuat pemetaan (di sini F4tetapi menggunakan apa pun yang Anda inginkan) yang akan memanggil fungsi
NormalModeCommand()
.Fungsi ini memungkinkan Anda untuk mengetik string di baris perintah dan kemudian mengeksekusi string yang Anda ketikkan sebagai perintah mode normal. Saat Anda mengetik string di baris perintah, Anda bisa memperbaikinya seperti setiap perintah lainnya. Tentu saja itu tidak ideal tetapi sekali lagi Vim tidak dimaksudkan untuk melakukan itu.
sumber