Gunakan backspace untuk memodifikasi perintah saat ini dalam mode normal?


9

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>0dkbukannya harus menekan escape dan coba lagi perintah?

Pertanyaan sampingan: Apakah ada istilah Vim untuk struktur data yang memegang perintah saat ini sebelum dilakukan?


1
Mungkin, ini dapat ditanyakan sebagai fitur dalam versi yang lebih baru!
SibiCoder


4
AFAIK tidak mungkin - tetapi, karena urutan ini pendek, saya tidak yakin keuntungan apa yang akan dicapai fitur tersebut. Ketika Anda harus mencoba ulang seluruh urutan, setidaknya Anda "dipaksa" untuk mengulanginya sampai Anda tidak membuat kesalahan seperti itu;) (yaitu - berulang membangun karakter! Pun yang dimaksud).
VanLaser

1
@ VanLaser Mimpi terburuk Vimmer adalah "dipaksa" untuk mengulangi sesuatu;) Juga, saya payah mengetik dan memiliki keyboard kosong sehingga tidak jarang bagi saya untuk mengacaukan perintah 256 kali sebelum melakukannya dengan benar.
HellaMad

4
Apa yang salah ketika pengetik yang buruk menggunakan keyboard kosong?
romainl

Jawaban:


3

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 :normalperintah. Itu membuat proses lebih lama tetapi misalnya jika Anda mengetikkan :normal 10jbaris perintah, Vim akan mengeksekusi 10jseolah-olah Anda mengetiknya dalam mode normal. (Lihat :h :normal)

Anda juga dapat menambahkan baris ini ke .vimrc:

nnoremap <F4> :call NormalModeCommand()<CR>

function! NormalModeCommand()
    let command = input("Normal command: ")
    execute "normal " . command
endfunction

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.