Ao usar o vi, digitar um “c” excluirá um caractere

5

Isso também acontece ao copiar e colar. Eu estou tentando editar o código Go e digitando ou copiando e colando "pacote principal" sai como "pkage main". Não faço ideia porque eu não posso digitar um c. Pressionando delete backspace imprime um ^? e pressionar delete na verdade exclui um caractere. Tentei reiniciá-lo, mas não tenho ideia de como resolver isso e não encontrei nada on-line.

    
por I'm a noob 21.12.2015 / 02:28

3 respostas

11

Possível causa 1:

Se c funciona normalmente em todos os lugares, de modo que este problema afeta apenas o Vim, pode ser que exista uma abreviação ou mapeamento configurado para c . Examine seu (s) arquivo (s) .vimrc .

Eu apenas temporariamente coloquei meu c em backspace no Vim nos modos normal, comando, normal e de inserção:

:map c ^?
:nmap c ^?
:imap c ^?

(Onde ^? indica o resultado da digitação Ctrl-V Backspace .)

Possível causa 2:

Você tem c como o caractere de exclusão no seu TTY. Isto é, como se o seguinte comando tivesse sido executado:

stty erase c

No entanto, isso também afetaria outros programas e shells. Experimente

stty sane

no seu shell para redefinir os parâmetros TTY para algumas configurações padrão razoáveis. Este é um comando útil para lembrar; é útil quando algum programa visual morre inesperadamente, deixando as configurações de TTY em um estado inadequado.

    
por 21.12.2015 / 04:08
2

Soa como algo distorcido no processo de colagem.

Quando você cola em qualquer outro editor, funciona ou é o mesmo? Se é o mesmo, então talvez a fonte já estivesse distorcida para começar.

Se outros editores colarem bem, tente o atalho da pasta da área de transferência:

" + + + p

Se você estiver copiando do outro aplicativo usando apenas a seleção com o mouse, use:

" + * + p

Se você ainda encontrar esquisitices, tente:

  1. :set paste para entrar no modo colar do vim.
  2. tente os atalhos de pasta acima
  3. Quando você quiser desativar o modo de colagem por qualquer motivo, basta :set nopaste .
por 21.12.2015 / 02:46
0

Copiar e colar no console funciona da maneira que o texto é inserido char por char, e o Vim interpreta cada caractere para significar algo.

Ao usar o Vim, verifique se você está no modo - INSERT - e não no modo de comando. No modo de Comando, um 'c' significa mudança e, por exemplo, se você digitar ce, o Vim irá apagar até o final da palavra e entrar no modo de Inserção.

'^' significa Comando. ^ C significa Ctrl + C . Esse é o console, não o próprio editor do Vim. Você obterá um caractere semelhante se pressionar Ctrl- (algo) ou a tecla Escape.

Todas as teclas de navegação padrão (como Home, Delete, PgUp / PgDn, teclas de seta) são incluídas no Vi moderno como backup. É para usuários que preferem não usar / achar difícil usar x ou d ou as teclas de rolagem hjkl.

    
por 21.12.2015 / 07:01