backspace in modalità inserimento non cancella i caratteri


10

Sono nuovo di vi , in realtà ho iniziato a studiare vi da oggi e mi sono bloccato sul comportamento del tasto backspace . In realtà quando ho acceso vi sul mio Ubuntu 12.04 per la prima volta la mia chiave backspace funzionava normalmente ma dopo ha iniziato a comportarsi in modo strano. Ogni volta che premo il backspace nella modalità di inserimento, si sposta di un posto a sinistra invece di cancellare il personaggio. Come posso ripristinare la funzionalità di backspace predefinita? Si prega di notare che non voglio installare vim o impostare nocompatibilty.


5
Questo è il tradizionale comportamento vi. Se hai la possibilità di impostare la nocompatibilità, allora stai già utilizzando vim.
Stéphane Chazelas,

Non sono a conoscenza del fatto che vi sia installato su Ubuntu. vi nel mondo Linux nella mia esperienza è solo un collegamento simbolico a vim. Se vuoi imparare il vero vi, installa nvi o il progetto hairloom vi.
Predrag Punosevac,

Risposte:


6

A volte il vicomando è un alias per vime quando chiamato come viabilita la sua modalità vi.

Anche in modalità tradizionale backspace sta eliminando il personaggio, ma non lo visualizza immediatamente come cancellato. (Dopo aver premuto ESC, i caratteri scompaiono.)

Immagina di dover scegliere tra usare viquale viene fornito con il comportamento descritto o usare vimquale è in grado di farlo nel modo previsto.


9
  1. Verifica se stai effettivamente utilizzando semplicemente vitramite

    $ vi --version | head -n 1

    Questo dà sulla mia macchina (Debian 7)

    VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 10 2013 02:27:59)

    vim può essere fatto per comportarsi più come vi. Questo può essere fatto dando il comando vianziché vimdalla riga di comando, dove viè presente solo un collegamento simbolico vim, nel qual caso vim viene aperto in modalità vi. Puoi verificarlo con :set compatible?.

  2. Come accennato dalla risposta precedente, l'effetto del backspace diventa visibile solo dopo essere uscito insert modequando set compatibleè abilitato.

Nota: in modalità compatibile vi, non è possibile eseguire il backspace sul testo precedentemente immesso (prima insert modedell'iscrizione) o eol o rientro insert mode. vedere :help 'bs'

    'backspace' 'bs'        string  (default "")
                            global
                            {not in Vi}
    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.

    When the value is empty, Vi compatible backspacing is used.
    For backwards compatibility with version 5.4 and earlier:
    value   effect
      0     same as ":set backspace=" (Vi compatible)
      1     same as ":set backspace=indent,eol"
      2     same as ":set backspace=indent,eol,start"

Prova le diverse impostazioni per comprenderne il significato: inserisci caratteri / interruzioni di riga e rientri in modalità inserimento, esci e rientra in modalità inserimento, quindi prova a tornare indietro.

Gli utenti che non hanno familiarità con il comportamento di vi e non insistono sull'uso di vi (non raccomandato comunque) dovrebbero :set backspace=indent,eol,start. Dopo Debian c'è di solito un file di configurazione a livello di sistema installato con questa impostazione.

È possibile ottenere l'impostazione corrente tramite :set bs?.


5

Crea un nuovo file nella directory home dell'utente chiamato .vimrc se non è già presente. Qui creeremo e modificheremo contemporaneamente con vi

sudo vi ~/.vimrc

Aggiungi i seguenti comandi, che includono la disattivazione della modalità di compatibilità e la funzionalità di cancellazione del tasto backspace:

set nocp
set backspace=indent,eol,start

Salvare ed uscire dal file usando

:wq

La disattivazione della modalità di compatibilità consente l'uso dei tasti freccia a cui siamo abituati.

Dato che abbiamo creato il file durante la creazione del file, la proprietà del file sarà probabilmente root. È possibile chown il file per l'utente.

Nel mio caso questo era per un lampone pi, quindi l'utente e il gruppo sono pi:

chown pi:pi ~/.vimrc

Ora accendi di nuovo vi e divertiti!


1
set nocpha fatto il trucco per me
Louis M


0

posto nel tuo ~/.zshrc

bindkey "^?" backward-delete-char
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.