backspace no modo de inserção não apagando caracteres

7

Eu sou novo no vi , na verdade comecei a aprender o vi a partir de hoje e fiquei preso ao comportamento da tecla backspace . Na verdade, quando eu ativei o vi no meu Ubuntu 12.04 pela primeira vez, minha chave de retrocesso estava funcionando normalmente, mas depois disso começou a se comportar de maneira estranha. Sempre que pressiono o backspace no modo de inserção, ele se move apenas um lugar para a esquerda, em vez de apagar o caractere. Como posso recuperar a funcionalidade de backspace padrão? Por favor note que eu não quero instalar o vim ou definir a nocompatibilidade.

    
por Saprativa Bhattacharjee 16.05.2013 / 20:55

5 respostas

4

Às vezes, o comando vi é um alias para vim e quando chamado como vi ativa seu modo de visualização.

Mesmo em backspace no modo tradicional, é excluído o caractere, mas não é exibido como excluído imediatamente. (Depois de pressionar ESC, os caracteres desapareceram.)

Acho que você tem que escolher entre usar vi , que vem com o comportamento descrito, ou usar vim , que é capaz de fazer da maneira que você espera.

    
por 19.05.2013 / 23:19
8
  1. Verifique se você está realmente usando vi simples via

    $ vi --version | head -n 1

    Isto dá na minha máquina (Debian 7)

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

    vim pode ser feito para se comportar mais como vi. Isso pode ser feito fornecendo o comando vi em vez de vim da linha de comando, em que vi é apenas um link simbólico para vim , nesse caso o vim é aberto no modo vi. Você pode verificar isso com :set compatible? .

  2. Como mencionado pela resposta anterior, o efeito do backspace fica visível somente depois de sair em insert mode quando set compatible está ativado.

Nota: No modo compatível com o vi, não é possível retroceder sobre o texto que foi inserido anteriormente (antes da inserção de insert mode ) ou do eol ou recuo em insert mode .    veja :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"

Experimente as diferentes configurações para entender seu significado: insira caracteres / quebras de linha e recuo no modo de inserção, saia e redigite o modo de inserção e, em seguida, tente o retrocesso.

Os usuários que não estão familiarizados com o comportamento do vi e não insistem em usar o vi simples (não recomendado de qualquer forma) devem :set backspace=indent,eol,start . Afaik no Debian geralmente há um arquivo de configuração do sistema instalado com esta configuração.

Você pode obter a configuração atual por meio de :set bs? .

    
por 19.05.2013 / 20:44
4

Crie um novo arquivo no diretório pessoal do usuário chamado .vimrc, se ainda não estiver lá. Aqui vamos criar e editar ao mesmo tempo com vi

sudo vi ~/.vimrc

Adicione os seguintes comandos, que incluem desativar o modo de compatibilidade e a funcionalidade de exclusão de chave de retrocesso:

set nocp
set backspace=indent,eol,start

Salvar e sair do arquivo usando

:wq

Desativar o modo de compatibilidade permite o uso de teclas de seta nos quais os antigos vices estão acostumados.

Como sudo'd ao criar o arquivo, a propriedade do arquivo provavelmente será raiz. Você pode chown o arquivo para o usuário.

No meu caso, isso era para um pi de framboesa, então o usuário e o grupo é pi:

chown pi:pi ~/.vimrc

Agora inicie o vi novamente e divirta-se!

    
por 28.12.2016 / 03:36
2

Acho que a melhor maneira seria examinar a planilha do VI / VIM: link

Entre no modo normal (ESC) e, em seguida, SHIFT + X.

    
por 17.05.2013 / 15:47
0

apenas coloque no seu ~/.zshrc

bindkey "^?" backward-delete-char
    
por 10.07.2015 / 18:29

Tags