Quando tentei usar as teclas de seta no modo de inserção no vi
editor, os seguintes caracteres estão sendo inseridos no editor:
- porque ↓eu recebo B,
- pois ↑eu recebo A,
- pois ←eu recebo D,
- pois →eu recebo C.
Por favor me ajude a resolver este problema.
text-editor
vi
bvb
fonte
fonte
Respostas:
Se você ainda não possui um
.vimrc
arquivo em seu diretório pessoal, crie um usando este:Adicione esta linha ao topo do arquivo:
Salve o arquivo e isso deve resolver o problema para você. :)
fonte
vi
vez devim
, precisará fazer a mesma configuração, mas no~/.exrc
arquivo.Instale o vim -> Isso resolverá o problema.
Existem muitos bons tutoriais do vim / vi no youtube ou na web em geral. Para o seu problema, veja aqui
Em seguida, continue a abrir os arquivos como de costume :
fonte
Com
vi
, ao clicar em ivocê ativar o comando para Inserir texto.Este comando permite inserir texto no seu arquivo.
E à direita, ao clicar em:
Até você desativar este comando.
Para desativar um comando
vi
: basta clicar em EscE então você voltará ao uso normal das teclas de seta:
Para sua informação, aqui estão alguns
vi
comandos:A partir desta fonte .
:x
Return sair do vi , gravar arquivo modificado no arquivo nomeado na invocação original:wq
Return sair do vi , gravar arquivo modificado no arquivo nomeado na invocação original:q
Return sair (ou sair) vi:q!
Return sair do vi, mesmo que as alterações mais recentes não tenham sido salvas para esta chamada vi↓ mover o cursor para baixo uma linha
↓ mover o cursor para cima uma linha
← mover o cursor para a esquerda um caractere
→ mover o cursor para a direita um caracter
u
desfazer o que você acabou de fazer; uma simples alternância para.
refazer o que você acabou de fazeri
inserir texto antes do cursor, até EscclicarI
inserir texto no início da linha atual, até Escclicara
anexar texto após o cursor, até EscclicarA
anexar texto ao final da linha atual, até Escpressionaro
abrir e colocar o texto em uma nova linha abaixo da linha atual, até EscpressionarO
abrir e coloque o texto em uma nova linha acima da linha atual, até Escpressionarr
substituir um caractere sob o cursor (não Escnecessário)cw
altere a palavra atual por um novo texto, começando com o caractere sob o cursor, até Escclicar emx
excluir caractere único sob o cursorNx
exclua N caracteres, começando com caractere sob o cursordw
exclua a palavra única começando com caractere sob aC
alteração do cursor (substitua) os caracteres na linha atual, até EscpressionarD
Excluir o restante da linha, começando com a posição atual do cursordd
excluir linha atual inteiraNdd
excluir N linhas, começando com a linha atual; por exemplo, 5dd exclui 5 linhasyy
copia (puxa, corta) a linha atual para o bufferNyy
copia (puxa, corta) as próximas N linhas, incluindo a linha atual, no buffer,p
cola as linhas no buffer no texto após a linha atual0
(zero) move o cursor para o início da linha atual (aquele com o cursor)$
move o cursor para o final da linha atualw
move o cursor para o início da próxima palavrab
move o cursor de volta para o início da palavra anterior:0
Returnou1G
move o cursor para a primeira linha do arquivo:n
ReturnounG
move o cursor para alinhar n:$
ReturnouG
mover o cursor para a última linha do arquivo/string
pesquisar para frente para ocorrência de sequência no texto?string
pesquisar para trás para ocorrência de sequência no texton
mover para a próxima ocorrência da sequência de pesquisaN
avançar para a próxima ocorrência da sequência de caracteres na direção opostafonte
:help compatible
: "Por padrão, essa opção está ativada e os padrões do Vi são usados para o Esse padrão foi escolhido para as pessoas que desejam usar o Vim exatamente como o Vi, e nem mesmo (querem) conhecer a opção 'compatível' ".Para desativar a impressão de letras pressionando as setas no modo de edição, você pode fazer o seguinte
(crie um arquivo se ele não existir), adicione uma linha
set nocompatible
e salve.fonte
:version
para a ordem de carga (também:h .exrc
ou:h init
). Suponho que alguém possa querer aplicar uma configuração no vi e no vim, ou pode ser pura força de hábito.Existem três modos no editor vi, a saber:
Quando você abre um arquivo, você está no modo padrão. Agora, se você quer ir para uma posição específica em seu texto, basta usar as setas ou uso h, j, k, lchaves. Note-se que isso iria funcionar somente quando você não tiver pressionado i(ou qualquer outro modo de entrada entrar comando como a, A, I).
A razão para 'B' pode ser que as teclas de seta no modo de entrada não funcionam como teclas de seta; portanto, basta pressionar Escpara entrar no modo padrão a qualquer momento. Quando mudar para o modo de entrada de imprensa iou a, e para navegar basta pressionar ias teclas chave e uso de seta ou h, j, k, l.
fonte
Eu tinha exatamente o mesmo problema, mas não apenas na minha máquina local, mas também nas conexões via massa de vidraceiro em uma máquina sles em uma VM Win7 por um receptor Citrix. Tanto o host local quanto os hosts remotos são exibidos após a reinstalação do Ubuntu, com o mesmo problema.
Depois de descobrir que
Causa esse estranho comportamento do VI. Instalei o pacote console-data que resolve o problema!
fonte
Nota:
Há boas informações nas outras postagens, mas nenhuma das postagens tentou explicar por que esse comportamento aconteceu. Muitas pessoas tendem a tropeçar nisso no futuro. Além disso, você pode marcar esta pergunta como resolvida, pois provavelmente uma das postagens anteriores o ajudou?
Aqui está uma explicação :
Vi é um editor que existe há muito tempo, com raízes nos sistemas Unix. É uma boa ferramenta, mas foi iterada e agora existe melhor. O Vim foi escrito mais tarde e é essa iteração. As pessoas geralmente se referem ao vi como 'vim-minimal' e o vim é uma versão "aprimorada" do vi. Você pode pensar assim: o vi é o núcleo e o vim se expande nele.
Provavelmente como você descobriu o comportamento :
Para descobrir esse problema, você pressionou " i " para entrar no modo de inserção e, em seguida, usou as teclas de seta para navegar pela linha e ponto de edição corretos. Foi isso que causou o seu problema inesperado de caracteres.
Solução 1 ou 2
1)
vi someFile
Enquanto estiver usando o vi , primeiro vá para o ponto de edição e entre no modo de inserção.2)
vim someFile
Basta usar o vim desde o início.Não posso me estressar o suficiente para ler o manual (páginas de manual) ou usar -h para obter ajuda. Depois que você se ajusta aos padrões no shell, as páginas do manual se tornam seu melhor amigo. Exemplo:
man vi
ouman vim
Valide se o Vim está instalado .
Abra uma janela do console e execute:
dpkg --list | grep vim
Se você receber algo parecido com isso, poderá começar a usar o vim.
Se o prompt de comandos retornar sem nada, o vim não está instalado. Use os exemplos abaixo para atualizar seus repositórios e depois instalar o vim.
Se você usar o vi ou vim apenas ao pesquisar na internet como consertar algo e esquecer de digitar
vim
, existe uma maneira de corrigi-lo para o futuro. Eu aconselho você a prestar atenção. Você pode usar um alias para sobrescrever vi com uma referência ao vim, para que não importa o que você digitar em um futuro pouco frequente, você obterá o vim sem esse "opa!" momento. Você sempre pode excluir um alias posteriormente.Digite
vim .bashrc
. Mova para baixo até a linha vazia com apenas um~
(ou qualquer outra linha que comece comalias
(para que eles sejam agrupados) e pressione a tecla i para entrar no modo de inserção.Em sua própria linha separada, digite o seguinte:Pressione
Esc
e digite:wq
. Agora você precisa recarregar o arquivo. Digitesource .bashrc
Qualquer outro shell que abrir depois que você fizer essas edições carregará automaticamente o arquivo .bashrc.fonte
Todas as explicações dadas são um pouco bizarras. Eu tenho o vi, mas não o vim instalado.
Verificando alternativas:
/etc/alternatives/vi
→/usr/bin/vim.tiny
Assim
vi
évim.tiny
e usa/etc/vim/vimrc.tiny
.E
vimrc.tiny
você encontra a seguinte linha:O que é quase a única coisa nesse arquivo. Observe que
/etc/vim/vimrc
ele está usandonocompatible
.Portanto, instale o vim ou altere o
vimrc.tiny
arquivo ou crie o seu próprio~/.vimrc
que deve conter a linha:fonte
~/.vimrc
e configurandonocompatible
: askubuntu.com/a/353944/158442 , ou 3. editando um arquivo do sistema. Somente a sugestão para editar/etc/vim/vimrc.tiny
é nova e, no entanto, você chama respostas bizarras enquanto sugere a mesma coisa que elas.O editor vi tradicional não reconhece as teclas de seta (... de frente). Existem duas soluções:
fonte
Isso também pode ser devido à
TERM
variável; defina-o por exemplo assim:fonte
Em alguns sistemas, a
nocompatible
opção não está disponível ou pode não resolver o problema se um plug-in quebrar a funcionalidade da tecla de seta. Aqui está uma solução alternativa ...Edite o
.exrc
arquivo para incluir as seguintes linhas:Ou, se o problema existir apenas no modo normal, você pode alterar
nmap
e pular o seguintea
, da seguinte maneira:e assim por diante.
Aqui estão as combinações de teclas necessárias para produzi-las (mostrando apenas a primeira):
Isso escapa do modo de edição, move-se na direção desejada e volta ao modo de edição. Isso é necessário para superar o Vi lendo a sequência de escape como uma sequência de literal <ESC> <O> <A>, etc.
Fonte: https://hea-www.harvard.edu/~fine/Tech/vi.html
fonte
Para o VI, crie ou edite o arquivo "~ / .exrc" ou o VIM crie ou edite o arquivo "~ / .vimrc" configurado ou adicione a linha.
No momento da redação deste texto, há elogios ao segundo item mais votado que estão se perguntando por que sua inscrição não foi aceita. O motivo é que existem hosts que não permitem a instalação de outros editores. Mesmo assim, o vim às vezes tem os mesmos efeitos; portanto, há várias informações úteis nas duas principais entradas. Não posso comentar, no entanto, espero que isso esclareça as razões pelas quais nenhum deles está 100% correto em 100% das vezes.
fonte
Nesta máquina eu tive
make sure
queé o
last entry in ~/.vimrc
. Ou pelo menos uma das últimas entradas, em particular nenhum plug-in é carregado posteriormente.HTH
fonte
Por alguma razão, o Ubuntu omitiu a inicialização do envvar HOME para usuário root no meu novo VPS de 18.04. Se for esse o caso, o vi não consegue encontrar o arquivo .vimrc. O problema não ocorre para usuários normais (em / home /).
Para verificar a variável:
Se isso resultar em uma linha em branco, a variável não está definida. O problema desapareceu depois
Mudei o comando para o arquivo /root/.bashrc (não sei onde isso geralmente está definido).
fonte