Devo aprender o Vim sem mapear chaves?

2

Eu tenho usado o vim por alguns meses, tem sido um relacionamento de amor / ódio. Eu adoro o conceito de edição modal e nunca ter a necessidade de tirar as mãos do teclado. O problema é que muitas delas parecem estar em locais complicados e os plugins facilmente entram em conflito uns com os outros com o seu arquivo vimrc personalizado.

Eu fiz um monte de mudanças que parecem mais intuitivas para mim, então eu queria saber se estou perdendo algum benefício por não usar as configurações padrão? Além disso, Vi e Vim estão em todos os lugares no mundo * nix (então será mais fácil se mover entre os computadores usando os padrões), há outros benefícios que estou perdendo fazendo um monte de mudanças nos mapeamentos de chaves?

    
por apokaliptis 31.01.2012 / 03:47

3 respostas

4

I love the concept of modal editing and never having the need to move you hands from the keyboard.

Antes de mudar para o Vim eu tenho usado o TextMate 90% sem o mouse. Vim me permitiu ir 100%, mas esses 10% são dificilmente perceptíveis.

The problem is that a lot of they keys seem to be in awkward locations

Não, o problema é que você se concentra em sua localização física e não em seu significado. Se você conhece o layout do seu teclado, as teclas não importam; o que importa é a conexão lógica que você faz entre essas chaves. Mas admito que pode demorar um pouco. Eu vi um número de folhas de fraude gráficas que cometem o erro imperdoável de realmente mostrar o teclado e amarrar os comandos à localização física de sua chave. Com esse tipo de representação, é quase impossível entender a linguagem do Vim (porque é uma linguagem).

(And there seems to be a design flaw for Plugins: they easily conflict with each other and with your own vimrc file).

Eu não acho que experimentei isso em larga escala, mas claro, usar dois plugins ligados à mesma chave que um de seus mapeamentos personalizados é o tipo de estratégia que criará problemas.

I moved "hjkl" to "jkl;", I also switch the direction the go from to <^v> (which IMHO is easier to transition to from arrow keys)

hjkl ou jkl; só fazem sentido se:

a. você é um digitador de toque

b. o seu teclado não tem teclas de seta

c. você tem um teclado QWERTY

Eu tentei usar hjkl quando mudei, mas não achei melhor que as teclas de seta. Como eu não sou um datilógrafo e uso um teclado AZERTY normal, voltei para as teclas de seta, o que não uso muito: Vim's wWEeBbfFtT/? e outros vários movimentos e objetos de texto fazem caractere por caractere e movimento linha por linha ( hjkl ) uma piada.

Novamente, o Mac OS X tem um monte de atalhos de edição poderosos, mas surpreendentemente amplamente desconhecidos, que, quando usados em toda a extensão, facilitam muito a navegação em um arquivo sem muito movimento caractere por caractere. Aqui é uma lista de atalhos do Cocoa, tanto o Windows quanto o KDE / Gnome têm seus próprios , também. Mover-se deste sistema para os movimentos e pesquisas legais do Vim é surpreendentemente fácil.

Moved : to <Tab> since it doesn't do anything by default.

O que você quer dizer? Você atinge <Tab> para invocar o modo de comando? Em caso afirmativo, como você realmente insere um separador no modo de inserção?

Mapped : to jump to beginning of next word (w) and J to jump to the beginning of previous word.

Novamente, não entendo: : é normalmente usado para invocar o modo de comando, por que você o usaria para passar para a próxima palavra? E J é usado para J oin linhas, qual seria o benefício de fazer outra coisa? E o que há de errado com b eginning e w ord?

Mapped <C-k> to jump to beginning of file and <C-l> to jump to end of file.

Novamente, G e gg são muito difíceis de digitar ou difíceis de lembrar?

Also since I am setting it up how It works helps me remember (I also keep notes that are easy for other people to understand what I am doing).

Eu concordo completamente, personalizar o Vim me ajudou muito.

Now that I have that out of the way, I was wondering if I am losing productivity by not using the default configurations? Other than that Vi and Vim are everywhere in the *nix world (so it will be easier to move between computers using the defaults), is there any other benefits I'm losing by making a bunch of changes to the key mappings? Or is it recommended that I make Vim more comfortable for myself and configured more for situation?

Eu segui um caminho semelhante no começo. Mudando de TextMate, meu reflexo foi fazer do Vim um clone do meu editor anterior. Eu copiei .vimrc verbatim de outras pessoas, instalei dezenas de plugins, criei muitos mapeamentos estranhos e assim por diante até que descobri um dia, enquanto usava SSH em um servidor remoto fora do meu controle que eu não sabia como usar o Vim sem todas essas coisas. Em absoluto. Meu MacVim ultra-personalizado não era mais o Vim e manteve escondido toda a grandiosidade do Vim. Então, decidi excluir tudo, começar de novo com ~/.vimrc vazia e ~/.vim/ e $ vimtutor vazios.

Foi a melhor decisão da minha curta carreira de codificadores front-end.

Meu ~/.vimrc cresceu, é claro. Eu tenho um monte de mapeamentos personalizados, é claro. Eu uso plugins, claro. Mas eu não dependo deles agora. Eu aprendi o suficiente sobre o "jeito do Vim" para me tornar mais produtivo do que eu já fui e ainda sou um noob.

Então, minha resposta é que suas tentativas de personalizar o inferno do Vim são equivocadas e você deve aprender o básico primeiro.

Mas essa é apenas a minha opinião.

    
por 31.01.2012 / 09:28
3

Esta é uma opinião, em vez de uma resposta firme, mas acho que seria melhor a longo prazo, aprendendo as chaves de Vim como elas são. Pode levar um pouco mais de tempo para aprendê-las com suas ligações originais, mas não acho que demorará tanto tempo, e depois disso você não notará, além de poder usar o Vim em outros computadores sem suas personalizações. Além disso, à medida que você aprende o Vim, descobrirá mais de sua funcionalidade e provavelmente desejará usar as funções cujas chaves agora vinculam a outras funções.

Eu não segui exatamente o que você fez com a chave : (colon), mas se você mapeou para outra coisa, como invocar comandos ex? É isso que o seu < Tab > faz agora?

Os plug-ins cujas funções estão vinculadas a chaves únicas ou pares de chaves geralmente entram em conflito com outros plug-ins. Às vezes, os autores de plugins facilitam a escolha de outras combinações de teclas; às vezes não.

    
por 31.01.2012 / 06:25
1

Pessoalmente, acho que você deveria aprender os mapeamentos. Torna as dicas de leitura ou tutoriais sobre as funções mais obscuras mais fáceis.

No futuro, você terá o problema de traduzir leituras futuras em recursos do Vim com os principais mapeamentos de suas próprias funções. Se qualquer coisa, sugiro que você crie alias ou macros para determinados fluxos de trabalho. Por exemplo, quase nunca consigo lembrar de todos os switches que o comando for aceita em arquivos batch. Então, quando vou escrever um arquivo batch, eu tenho um alias que carrega um arquivo de texto de todos os switches friggin e opções em uma janela dividida.

    
por 31.01.2012 / 06:56