La chiave di eliminazione non funziona in vim su iTerm2


12

In primo luogo, ho digitato qualcosa in modalità inserimento, come

Hello

A questo punto, se non sono uscito dalla modalità di inserimento, deletefunziona e posso eliminare l'intera parola se lo desidero.

Se esco dalla modalità di inserimento e apro di nuovo la modalità di inserimento, Hellonon è possibile rimuoverla delete. Ma il contenuto appena digitato può essere rimosso.

Ho rinominato il mio .vimrc, il problema persiste.

E ho fatto alcuni test sul server remoto tramite iterm, non ho riscontrato lo stesso problema.

Quale potrebbe essere la causa di questo problema? Come sistemarlo?


Con "cancella" intendi backspace? Rimuovere parole intere in modalità inserimento può essere fatto con Ctrl-W, provalo. Se ciò non fa nulla, c'è qualcosa che non va nella tua vim. Uso iTerm 2 e non ho mai avuto problemi del genere.
Remo

Sì, posso usare dwo dw+ shiftin modalità normale per eliminare le parole. Ma backspacee ctrl+ wentrambi non funzionano nella seconda situazione che ho menzionato sopra.
Zen,

Ma puoi usare backspace sulla normale riga di comando al di fuori di vim? Molto strano.
Remo

@oarfish, sì, posso, e nel server remoto vim non ho questo problema, tutto accade all'improvviso. Per ora non ne ho idea.
Zen,

Quale versione di vim hai? Ho vim 7.4.481 e non riesco a riprodurre il problema.
Jan.h

Risposte:


16

Questa è una funzionalità di vim, sebbene IIRC non sia abilitata per impostazione predefinita.

backspaceè un ambiente in vim, ed è possibile impostare tre diversi parametri: indent, eol, estart

Se corri :help backspace, ti dirà:

Influences the working of `<BS>`, `<Del>`, `CTRL-W` and `CTRL-U` in Insert
mode.  This is a list of items, separated by commas.  Each item allows
a way to backspace over something:

value     effect
indent    allow backspacing over autoindent
eol       allow backspacing over line breaks (join lines)
start     allow backspacing over the start of insert; CTRL-W and CTRL-U
          stop once at the start of insert.

Quello che non è impostato per te è start.

Se aggiungi set backspace=indent,eol,startal tuo .vimrc, sarai in grado di eseguire il backspace su qualsiasi cosa in modalità insert.


"feature" ... Per qualche motivo, lo vedo abilitato di default su un nuovo macOS 10.13 con una brew install di vim latest. Questa soluzione risolve ancora il problema.
Taylor Edmiston,

2

Ho anche avuto questo, i valori predefiniti di elaborazione del testo naturale erano sbagliati per me.

  • MacBook Pro (15 pollici, 2018)
  • 10.14.3 (Mojave)
  • Iterm2 3.2.7

Vai Preferences > Profiles > Keyse caricare il preset di default Natural Text Editinge cancellare tutte le voci che sono circa deletee deleteil comportamento. Dopodiché funziona come previsto.


1
Lo stesso, tranne che ho appena rimosso le voci su "Del->", ma non ho aggiunto un'associazione "Sends ^ H". Quindi ha funzionato come previsto.
DagW

@DagW confermato, l'associazione ^ H non è necessaria.
Salyangoz,
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.