Eu li em muitos artigos ( por exemplo ) que é uma prática ruim usar as teclas de seta no modo normal. Alguém poderia explicar por que é considerado uma prática errada, se é que existe?
key-bindings
cursor-movement
Ankit Jain
fonte
fonte
hjkl
em Dvorak. É definitivamente menos sensato do que no qwerty, mas não sei se chamaria de "difícil de usar"; são apenas chaves, e não é difícil alcançá-las ou qualquer coisa assim que você estiver acostumado.hjkl
deveria ser a melhor opção para mover um documento. A verdade é que alguns teclados estavam com as teclas de setahjkl
no momento em que o vi foi criado; portanto, o vi usou as mesmas teclas no modo normal para corresponder ao layout do teclado. Aqui está um artigo com uma foto do teclado: catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keyshjkl
. Bons. Mas eles são inflados ao status de dogma, pelo menos em parte, porque as pessoas precisam sentir que são melhores que outras.hjkl
não são os melhores de sempre em dvorak. Mas como usuário do dvorak, posso encontrá-los um pouco úteis, uma vez que estão emparelhados: como emjk
um lado do quadro; ehl
do outro lado.Respostas:
Na verdade, essa não é uma prática ruim.
Muitas pessoas ( incluindo o documento de Vim como mostra a resposta da @B Layer ) argumentam que você não deve usar as setas, porque faz com que suas mãos se movam da linha inicial (a segunda linha do teclado onde você tem hjkl) e isso o torna menos eficiente .
Este é (pelo menos a IMO) um mau resultado do círculo "purista" do vim: novos usuários seguem isso cegamente, alguns até desabilitam as teclas de seta e depois reclamam que não são tão eficientes quanto antes.
A única regra real para uso vim é usá-lo de forma eficiente: se você se sentir mais confortável usando Lefte Rightque he l ser-lo, use as setas do teclado. Vim ainda tem
set mouse=a
opção se você quiser usar um mouse!Uma vez que você se acostumar com Vim e ficar melhor com os diferentes movimentos disponíveis ( f, t, ,, ;, w, b, e, ge, e, basicamente, tudo em
:h quickref
) você pode perceber que você faz uso não as setas que muito. E se você ainda usá-los, não há problema, use com o que você é mais eficiente.Observe que o argumento de não sair da linha de casa para obter mais eficiência não é tão bom na minha opinião: se você der uma olhada em Por que o vim usa hjkl, verá que essas chaves foram escolhidas porque não havia nenhuma seta teclas quando Vi foi escrito. Alguém poderia argumentar que talvez se os teclados fossem diferentes nesse momento, ninguém consideraria não usar as teclas de seta uma boa prática.
fonte
hjkl
apenas para aliviar um pouco a dor do meu pulso.Não sei mais se isso é realmente relevante, mas eu sou veterano, então aqui está um pouco de história.
Antigamente, os terminais VT100 tinham teclas de seta, mas pressionar um transmitia uma sequência de escape como
<ESC>[A
para cima,<ESC>[B
para baixo, etc.Além disso, sendo um terminal serial se comunicando a 9600 baud, era possível que o usuário pressionasse as teclas muito rápido transmitir a sequência inteira, o que causaria um pressionamento de tecla para interromper a sequência do pressionamento de tecla anterior e confundir vi.
Isso faria com que o vi inexplicavelmente entre no modo de inserção e insira [B [B [B [B [B [B [B [B [B [B [B [B [B [B [B [B [B [B [B [B [B [B [B [B]]]]]]]] no arquivo) se você mantiver pressionada a seta para baixo). Digo inexplicavelmente porque não há nada nessa sequência que deva entrar no modo de inserção e o fato de que cada sequência começa com um caractere ESC deveria ter saído do modo de inserção. Mas, ainda assim, inseriria lixo. Nem sempre - apenas quando você estava com pressa.
Um deles rapidamente se cansou disso e decidiu ficar com as
hjkl
chaves.fonte
Embora eu concorde com a @statox que ninguém deve ser castigado, evitado, excomungado ou manchado de penas se optar por usar as teclas de seta ... use seu software da maneira que achar melhor ... eu não exalarei como uma atitude de laissez-faire, se eu estivesse orientando um novo usuário de mente aberta. Eu recomendo fortemente que eles comecem com as práticas recomendadas a seguir. São "práticas recomendadas" por um motivo ... elas foram empregadas com bons resultados por muitas pessoas que vieram antes de você e eu.
Caramba, até a própria ajuda de Vim o leva nessa direção , embora não sem hipérbole (" desacelere bastante ") ...
Há também o fato de que quaisquer que sejam as escolhas que você faça no início podem se tornar hábitos difíceis de quebrar, se você quiser mudar no futuro. Então, tudo o mais é igual, por que não adotar um hábito recomendado agora, em vez de arriscar que usar as setas do teclado é ineficiente ou mata o carpo?
Em suma, considere fazer um esforço honesto para fazer as coisas sem as teclas de seta. Depois de um tempo razoável, se você simplesmente não pode viver sem cima / baixo / esquerda / direita ... não.
... é o que eu diria a um novo usuário interessado na minha opinião. Não leve para o lado pessoal se não concordar (estou falando com você, desautorizado).
fonte
don't think it's necessary to rank best practices
Bem, parece-me que devemos nos concentrar nas coisas que nos dão o melhor valor na vida, dado que os recursos são finitos e a vida é curta. Por acaso, sei que as teclas hjkl são o coração devido a uma infância perdida, tocando ladino, larn, angband etc. em um laptop sem teclado numérico, mas algumas pessoas passaram a infância melhor e terão que "desaprender" as teclas de seta independentemente. Penso que os movimentos de aprendizagem, os intervalos etc. são uma maneira muito mais útil de passar o tempo.Outras respostas disseram que a perda de eficiência ao mover suas mãos da linha de casa não é grande coisa, e eu concordo principalmente. No entanto, o que é um grande negócio é quando você está aprendendo vim, sempre usando as setas para evitar voltar a mudança para o modo normal.
Em outras palavras, usar um único ←onde você teria usado hnão é uma enorme perda de produtividade, mas usar ←←←←←←←←←←onde você poderia ter usado EscI é uma enorme perda.
É por isso que as pessoas dizem para você evitar as setas do teclado quando você está aprendendo o vim, porque isso o força a aprender o modo normal em vez de nunca sair do modo de inserção. O modo normal é onde estão todos os seus ganhos de eficiência.
fonte
hjkl
". (Retendo a hipérbole intencional.) #←
você poderia ter usado1
0
←
ou, ainda mais simplesHome
,. O último funciona mesmo no Windows Notepad.Há duas razões principais pelas quais as pessoas dizem que você não deve usar as teclas de seta. Alguns afirmam que o hjkl é preferido porque mantém suas mãos na linha de casa, o que não é falso , mas também não importa. Outros, inclusive eu, diriam que você não deve usar as teclas de seta se estiver movendo mais do que alguns caracteres, mas também não deve usar o hjkl.
O importante não é quais chaves você está usando, mas quantas . Se você quer passar para o início da palavra, não bate
hhh
; você bateb
. Fim da palavra ée
, nãollll
. Início da linha:0
, fim da linha:$
. E mais,/search
para o texto que existe para onde você deseja ir. (ou qualquer um dos comandos avançados de movimento que você preferir).Mas sempre que você digitar a mesma chave mais de duas vezes seguidas, há uma maneira melhor de fazê-lo.
fonte
Uma declaração mais precisa pode ser "usar as setas do teclado é uma prática ruim ao tentar aprender melhor o vim " . As pessoas novas no vim estão acostumadas a usar as setas do teclado para se movimentar e, portanto, não aprendem
hjkl
, não tendo a chance de ver se isso é preferível.Pessoalmente, depois de ganhar alguma familiaridade geral com o vim, desabilitei as teclas de seta por um tempo para pegar o jeito
hjkl
e as reativei mais tarde para simplificar o meu.vimrc
. A sabedoria convencional vale no meu caso; Depois que soube usarhjkl
as teclas de seta e as duas , me vi quase exclusivamente usando a primeira.fonte
A resposta usual envolve eficiência. Você provavelmente foi treinado ao longo dos anos para empregar a digitação por toque, que mantém as mãos em asdf e jkl ;. A grande maioria das ligações de teclas no Vi é projetada para esse fato, incluindo os comandos de movimento hjkl.
Pessoalmente, eu realmente uso os dois. Uso o hjkl quando estou editando ativamente grandes seções de texto e as teclas de seta ao percorrer os arquivos de log (e |, g e / quando estou fazendo edições especiais em um arquivo). É o que funciona bem para mim e, em um caso como esse, é o que realmente importa.
fonte
Há muito tempo, muitos terminais não possuíam teclas de seta ou não possuíam todos os quatro. Os sistemas de software que precisavam de navegação normalmente forneciam algum tipo de abordagem de navegação sem depender de teclas de seta, e o hjkl do vi é um exemplo canônico. (Outro exemplo clássico é o ^ E- ^ S- ^ X- ^ D do WordStar.) À medida que a utilidade da navegação por teclado se tornava cada vez mais óbvia, mais e mais novos terminais começaram a aparecer com teclas de seta, e os sistemas de software frequentemente os mapeavam para as formas antigas de navegação. No entanto, isso forneceu uma espécie de preocupação de portabilidade: se as crianças treinadas nas escolas passassem a confiar em um recurso tão sofisticado como as teclas de seta, pensava-se que elas talvez não fossem capazes de ser produtivas no - uma vez comum - teclados sem teclas de seta.
Assim, os professores dos cursos de computação básica começaram a advertir cautelosamente os alunos a aprender a usar o menor denominador comum, a fim de maximizar sua empregabilidade. E essa prática sobreviveu por muito tempo a quaisquer razões que possa ter tido.
Nas implementações modernas do vi, o principal motivo para preferir o hjkl é que é um pouco mais rápido usar as teclas já em sua mão do que movê-la para onde quer que estejam as teclas de seta. A desvantagem de evitar a troca de contexto da sua mão, é claro, é que você pode precisar executar uma troca de contexto do vi. Hoje em dia, quando os humanos raramente apreciam a velocidade da digitação, se você faz um ou outro é uma questão de preferência pessoal, e não há mais nada de inerentemente ruim em usar as setas, se é que houve.
fonte