Não consigo mover o documento durante a edição


7

Estou trabalhando em um computador ChromeOS com o Vi e o Vim. Quando abro o editor para um documento existente, digito A para começar a editar. Quando tento me movimentar com minhas teclas de seta, acontece o seguinte:

teclas de seta vim e vi

Eu tentei o Vim e o Vi, e os dois têm esse problema. Como movo-me pelo documento enquanto o edito?


4
Relacionado (embora não seja uma duplicata exata, pois se trata do vi, não do Vim): Corrija as teclas de seta que exibem A, B, C, D no vi (não no vim) .
Martin Tournoij 26/12/2015

11
No shell, qual é a saída echo $TERM? Qual é a saída do set termVim?
Muru

@muru $ TERM é xterm, termo definido éterm=xterm
Elliot A.

Se você não possui set nocompatible(ou seja, não vimrc), você deve ter um.
FDinoff

2
Use :set nocomptibleno vim. Verifique também os valores::verbose set cp? cpo?
Christian Brabandt

Respostas:


6

Eu preciso apontar o elefante na sala: você não deve navegar no modo de inserção.

O modo de inserção é para inserir texto. Enquanto muitas implementações vi permitem navegar (usando as teclas de seta) no modo de inserção, o método normal recomendado de navegação é navegar no modo normal. O modo normal deve ser o modo em que você está normalmente, daí o nome.

O tópico da edição modal vs. teclas de seta está bem descrito (no nível iniciante) em "Equívoco nº 1" neste excelente artigo .

Como ponto de fundo adicional, os terminais nos quais vifoi originalmente projetado nem sequer tinham teclas de seta. Em alguns teclados antigos, as teclas HJKL também são rotuladas com setas; Na verdade, não sei se isso aconteceu antes ou depois, vimas desconfio da primeira.

Eu recomendo trabalhar no vimtutor(na linha de comando) e ler o artigo acima para começar a entender o poder da edição modal. Suspeito que o problema das teclas de seta que não funcionem caia em total insignificância quando você sentir os poderosos comandos de movimento disponíveis no modo normal. Sei que pessoalmente nunca uso teclas de seta durante a edição de texto no Vim, e me sinto deficiente ao usar outros editores nos quais devo usar as teclas de seta para navegar.

Este site em si também será de grande ajuda; por exemplo, aqui estão algumas postagens que você pode achar úteis:

Quanto ao âmago da questão do Chrome OS e como ele interpreta as teclas de seta no seu terminal, suspeito que a depuração vai além do escopo deste site. Se você estiver realmente determinado a usar as teclas de seta vi, talvez tenha mais sorte com a questão da depuração do teclado para o terminal entre as pessoas com conhecimento em superuser.com. Boa sorte para você, o que você decidir, e espero que você possa apreciar o poder do Vim, mesmo com padrões de uso que não sejam chaves de seta. :)


PS: As maioria dos comandos básicos de movimento existem, são h, j, k, l. Para estes você pode adicionar <Space>, <Backspace>, <Return>e -, e, claro, os grandes favoritos w, b, ee os seus homólogos separados por espaços em branco-palavra W, B, E. Se você adicionar em movimentos sentença (e ), moções de parágrafo {e }, buscando a palavra sob o cursor para a frente ou para trás com *e #, respectivamente, e pesquisa de caráter mesma linha, com f, t, F, T, ;e,, e se você aprender realmente tudo isso, ou até a maioria (o que não vai demorar muito, na verdade) ... posso prometer com total confiança que você nunca mais voltará a usar as setas para navegar texto no Vim.

Esta nem é uma lista completa de comandos de movimento; longe disso. Para ver uma lista mais completa, juntamente com a documentação para cada um, iniciar Vim, tipo :help motion.txte uso je kcomo o seu "baixo" e "para cima" chaves para percorrer o documento.


11
"Você não deve navegar no modo de inserção" -> Porque pressionar a seta para baixo duas vezes não é tão rápido quanto pressionar <Esc>jji. Não importa, isso <Esc>também está fora da linha inicial, assim como a seta para baixo.
Martin Tournoij 29/01

@Carpetsmoker, se um pressionamento de tecla de seta para baixo pudesse ser reproduzido corretamente como parte de um comando de ponto, eu provavelmente faria isso algumas vezes. Já que não pode ... eu não me incomodo com as setas; <C-o>2jainda é mais rápido.
Curinga

11
Além disso, não toquei na <Esc>tecla nenhuma vez desde que aprendi que <C-[>faz a mesma coisa.
Wildcard

Mapeei minha chave caps lock para <kbd> esc </kbd>, é útil em tudo, não apenas no vim.
theonlygusti
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.