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:
Eu tentei o Vim e o Vi, e os dois têm esse problema. Como movo-me pelo documento enquanto o edito?
key-bindings
terminal
Elliot A.
fonte
fonte
echo $TERM
? Qual é a saída doset term
Vim?xterm
, termo definido éterm=xterm
set nocompatible
(ou seja, não vimrc), você deve ter um.:set nocomptible
no vim. Verifique também os valores::verbose set cp? cpo?
Respostas:
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
vi
foi 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,vi
mas 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 favoritosw
,b
,e
e os seus homólogos separados por espaços em branco-palavraW
,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, comf
,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.txt
e usoj
ek
como o seu "baixo" e "para cima" chaves para percorrer o documento.fonte
<Esc>jji
. Não importa, isso<Esc>
também está fora da linha inicial, assim como a seta para baixo.<C-o>2j
ainda é mais rápido.<Esc>
tecla nenhuma vez desde que aprendi que<C-[>
faz a mesma coisa.