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