Se você ainda não tiver um arquivo .vimrc em seu diretório pessoal, crie um usando:
vim ~/.vimrc
Adicione esta linha ao topo do arquivo:
set nocompatible
Salve o arquivo e isso deve corrigir o problema para você. :)
Quando tentei usar as teclas de seta no modo de inserção no editor vi , os seguintes caracteres estão sendo inseridos no editor:
Por favor, ajude-me a resolver este problema.
Se você ainda não tiver um arquivo .vimrc em seu diretório pessoal, crie um usando:
vim ~/.vimrc
Adicione esta linha ao topo do arquivo:
set nocompatible
Salve o arquivo e isso deve corrigir o problema para você. :)
Com vi , ao clicar em i você ativa o comando para o texto Inserir .
Este comando permite inserir texto no seu arquivo.
E certo, quando clicar:
Até você desativa este comando.
Para desativar um comando em vi : basta clicar em Esc
E então você voltará ao uso normal de suas setas:
FYI, aqui estão alguns comandos vi : desta fonte .
:x Retorna fecha o vi , gravando o arquivo modificado no arquivo chamado na invocação original
:wq Retornar sair do vi , escrevendo o arquivo modificado para o arquivo chamado na chamada original
:q Retornar sair (ou sair) vi
:q! Retornar sair do vi mesmo que as alterações mais recentes não tenham sido salvas para esta chamada vi
↓ move cursor para baixo uma linha
↓ cursor move para cima uma linha < br> ← cursor move deixou um caractere
→ move cursor um caractere à direita
u desfaça o que você acabou de fazer; uma simples alternância de . refazer o que você acabou de fazer
i insere texto antes do cursor, até que Esc acione o texto I inserir no início da corrente line, até que o Esc acione% a anexe texto após o cursor, até que Esc acesse% A anexar texto ao final da linha atual, até que Esc acesse o abra e coloque o texto em uma nova linha abaixo da linha atual, até Esc pressione O aberto e coloque o texto em uma nova linha acima da linha atual, até que Esc pressione
r substituir caractere único sob cursor (não é necessário Esc )% cw alterar a palavra atual com novo texto, começando com o caractere sob cursor, até que Esc acesse % x delete caractere único sob o cursor
Nx delete N caracteres, começando com o caractere sob cursor
dw excluir a única palavra que começa com o caractere sob o cursor
C alterar (substituir) os caracteres na linha atual, até Esc atingir D excluir o restante da linha, começando com a posição atual do cursor
dd excluir toda a linha atual
Ndd excluir N linhas, começando com a linha atual; por exemplo, 5dd exclui 5 linhas de yy cópia (arranca, corta) a linha atual no buffer
Nyy copy (yank, cut) as próximas N linhas, incluindo a linha atual, no buffer
p cola a (s) linha (s) no buffer no texto após a linha atual
0 (zero) cursor move para o início da linha atual (a que está com o cursor)
$ move cursor para o fim da linha atual
w move cursor para o início da próxima palavra
b move cursor de volta para o início da palavra anterior
:0 Retorna ou 1G move cursor para a primeira linha do arquivo
:n Retorna ou nG move cursor para alinhar n% :$ Retornar ou G mover cursor para a última linha no arquivo
/string procura encaminhar para a ocorrência de string no texto
?string pesquisar para trás para a ocorrência de string no texto
n move para a próxima ocorrência da string de pesquisa em N move para a próxima ocorrência de sequência de pesquisa na direção oposta
Para desativar as letras de impressão ao pressionar as setas no modo de edição, você pode fazer o seguinte
vi $HOME/.exrc
(crie o arquivo se ele não existir) e adicione a linha set nocompatible a ele e salve.
Existem três modos no editor vi, a saber:
Quando você abre um arquivo, você está no modo padrão. Agora, se você quiser ir para uma posição específica no seu texto, use apenas as teclas de seta ou use h , j , k , l chaves. Note que isto só funcionaria quando você não tivesse pressionado i (ou qualquer outro comando de entrada no modo de entrada como a , A , I ).
O motivo para 'B' pode ser porque as teclas de seta no modo de entrada não funcionam como teclas de seta, então pressione Esc para entrar no modo padrão a qualquer momento. Quando mudar para o modo de entrada, pressione i ou a , e para navegar pressione a tecla i e use as teclas de seta ou h , j , k , l .
Eu tive exatamente o mesmo problema, mas não apenas na minha máquina local, mas também nas conexões via putty em uma máquina sles em uma VM Win7 através de um receptor Citrix. Tanto o host local quanto os hosts remotos mostram após uma reinstalação do Ubuntu o mesmo problema.
Depois de descobrir que
$ localectl list-keymaps
Couldn't find any console keymaps.
Faz com que este estranho comportamento VI eu instalei o pacote console-data que resolve o problema!
sudo apt-get install console-data
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 & amp; rightarrow; /usr/bin/vim.tiny
Então, vi é vim.tiny e usa /etc/vim/vimrc.tiny .
E em vimrc.tiny você encontra a seguinte linha:
set compatible
Qual é quase a única coisa neste arquivo. Observe que em /etc/vim/vimrc está usando nocompatible .
Então, instale o vim ou altere o arquivo vimrc.tiny ou crie seu próprio ~/.vimrc , que deve conter a linha:
set nocompatible
O editor vi tradicional não reconhece as teclas de seta (... afair). Existem duas soluções:
Nota:
Há boas informações nas outras postagens, mas nenhuma das postagens tentou explicar por que esse comportamento aconteceu. Muitas pessoas são obrigadas a tropeçar nisso no futuro. Além disso, você poderia marcar essa pergunta como resolvida, já que qualquer um dos posts anteriores provavelmente ajudou você?
Aqui está uma explicação :
O Vi é um editor que já existe há muito tempo, com raízes nos sistemas Unix. É uma boa ferramenta, mas foi iterada e agora é melhor. Vim foi escrito mais tarde e é essa iteração. As pessoas comumente se referem ao vi como 'vim-minimal' e ao vim é uma versão "melhorada" do vi. Você pode pensar assim: o vi é o núcleo e o vim se expande.
Provavelmente você descobriu o comportamento :
Para que você tenha descoberto esse problema, pressionou " i " para entrar no modo inserir e usou as teclas de seta para navegar na linha correta e editar ponto. Isso é o que causou o seu problema inesperado.
Solução 1 ou 2
1) vi someFile Ao usar vi , primeiro mova para o ponto de edição e, em seguida, entre no modo de inserção.
2) vim someFile Basta usar o vim desde o início.
Eu não posso enfatizar o suficiente para ler o manual (man pages) ou usar -h para ajuda. Depois de ajustar os padrões no shell, as páginas do manual se tornarão seu melhor amigo. Exemplo: man vi ou man vim
Confirme se o Vim está instalado .
Abra uma janela do console e execute:
dpkg --list | grep vim
Se você obtiver algo semelhante a isso, poderá começar a usar o vim.
~ $ dpkg --list | grep vim
ii vim 2:7.4.052-1ubuntu3 amd64 Vi IMproved - enhanced vi editor
ii vim-common 2:7.4.052-1ubuntu3 amd64 Vi IMproved - Common files
ii vim-runtime 2:7.4.052-1ubuntu3 all Vi IMproved - Runtime files
ii vim-tiny 2:7.4.052-1ubuntu3 amd64 Vi IMproved - enhanced vi editor - compact version
Se o prompt de comando retornar sem nada, então o vim não está instalado. Use os exemplos abaixo para atualizar seus repositórios e, em seguida, instale o vim.
sudo apt-get update
sudo apt-get install vim
Na chance de você usar o vi ou o vim apenas quando pesquisar na internet como consertar algo e se esquecer de digitar vim , existe uma maneira de poder corrigi-lo para o futuro. Eu te aconselho a prestar atenção. Você pode usar um apelido para sobrescrever o vi com uma referência ao vim, de modo que não importa o que você digita no futuro não freqüente, você obtém o vim sem o "oops!" momento. Você sempre pode excluir um alias depois.
Digite vim .bashrc . Mova para baixo até a linha vazia com apenas um ~ (ou para qualquer outra linha que comece com alias (então eles estão agrupados) e então pressione a tecla i para inserir -insert- Em sua própria linha separada, digite o seguinte:
alias vi='vim'
Pressione Esc e digite :wq . Agora você precisa recarregar o arquivo. Tipo source .bashrc Qualquer outro shell aberto depois de você ter feito essas edições carregará automaticamente o arquivo .bashrc.
Isso também pode ser devido à variável TERM ; configurá-lo por exemplo como este:
export TERM=xterm
Em alguns sistemas, a opção nocompatible não está disponível ou pode não corrigir o problema se um plug-in quebrar a funcionalidade da tecla de seta. Aqui está uma solução alternativa ...
Edite o arquivo .exrc para incluir as seguintes linhas:
map! ^[OA ^[ka
map! ^[OB ^[ja
map! ^[OC ^[la
map! ^[OD ^[ha
Ou, se o problema existir apenas no modo normal, você pode alterar para nmap e ignorar o seguinte a , da seguinte maneira:
nmap! ^[OA ^[k
e assim por diante.
Aqui estão as combinações de teclas necessárias para produzi-las (mostrando apenas uma primeira):
map! <CTRL-V><Up-Arrow> <CTRL-V><ESC>ka
Isso escapa do modo de edição, move-se na direção desejada e entra novamente no modo de edição. Isso é necessário para superar a leitura da seqüência de escape como uma sequência de literal & lt; ESC & gt; & lt; A & gt; & lt; A & gt ;, etc.
Fonte: link
Tags vi text-editor