Utilizzare backspace per modificare il comando corrente in modalità normale?


9

A volte, quando si immette un comando in modalità normale, è possibile effettuare un errore di battitura, ad esempio se intendo digitare 10dk, potrei iniziare a digitare accidentalmente 19d.

Dato che il comando non è stato ancora completato / eseguito il commit, è possibile eliminare le chiavi errate usando backspace, in quanto tale: 19d<backspace><backspace>0dkinvece di dover premere escape e ritentare il comando?

Domanda a margine: esiste un termine Vim per la struttura dei dati che contiene il comando corrente prima che venga eseguito il commit?


1
Probabilmente, questo può essere richiesto come funzionalità nelle versioni più recenti!
SibiCoder


4
AFAIK non è possibile - ma, poiché queste sequenze sono brevi, non sono sicuro di quale guadagno realizzerebbe una tale funzionalità. Quando devi riprovare l'intera sequenza, almeno sei "costretto" a ripeterla fino a quando non commetti tali errori;) (cioè - ripetere il personaggio costruisce! Gioco di parole previsto).
VanLaser,

1
@VanLaser Il peggior incubo di un Vimmer è essere "costretto" a ripetere qualcosa;) Inoltre, faccio schifo a digitare e ho una tastiera vuota, quindi non è raro per me sbagliare un comando 256 volte prima di farlo bene.
HellaMad,

4
Cosa potrebbe andare storto quando un dattilografo cattivo usa una tastiera vuota?
romainl

Risposte:


3

Non c'è modo di farlo ed è normale che non lo sia: i comandi in modalità normale sono generalmente piuttosto brevi e possono essere annullati Escse si sbaglia.

Una possibile soluzione alternativa sarebbe utilizzare il :normalcomando. Rende il processo più lungo ma, ad esempio, se si digita :normal 10jnella riga di comando, Vim verrà eseguito 10jcome se fosse stato digitato in modalità normale. (Vedi :h :normal)

Puoi anche aggiungere queste righe al tuo .vimrc:

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

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

Creano una mappatura (qui F4ma usano quello che vuoi) che chiamerà la funzione NormalModeCommand().

La funzione consente di digitare una stringa nella riga di comando e quindi eseguire la stringa digitata come comando in modalità normale. Mentre si digita la stringa nella riga di comando, è possibile correggerla come ogni altro comando. Ovviamente non è l'ideale, ma ancora una volta Vim non è intenzionato a farlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.