Usando o vim em um ambiente de alta latência

4

Eu uso o vim há anos e me sinto bastante proficiente com isso. No entanto, recentemente, tenho trabalhado em um servidor com um tempo de ping de 520 ms (Sydney para a África do Sul). Isso aumenta muito a minha necessidade de usar o vim com mais eficiência. O que posso fazer para ajudar a aprender os atalhos que até agora nunca aprendi?

    
por brianegge 05.02.2010 / 08:02

5 respostas

3

Para usar o vim com mais eficiência, eu me concentraria em aprender mais sobre os comandos de movimento especializados (parentes para mover por frase, chaves para mover por parágrafos). Eles podem ser combinados com os comandos de edição (excluir, alterar, etc.) quando você estiver familiarizado com eles. Além disso, aprenda as combinações 'a' e 'i' para selecionar (e aplicar comandos a) objetos ao redor do cursor (por exemplo, das para excluir a sentença em que está o cursor: compare a (d) , que possui três alternâncias Shift ). Aprenda a aplicar contagens para movimentos maiores (por exemplo, c2w para alterar as próximas duas palavras, d2as para excluir a frase em que o cursor está e o próximo). Use marcas para pular para pontos usados com freqüência.

Esqueci um dos meus comandos de movimento favoritos: f / t / F / T mover para frente ou para trás (minúscula ou maiúscula, respectivamente) para a próxima ou imediatamente antes da próxima (f ou t , respectivamente) caractere digitado: f* passa para o próximo * à direita, T( se move à direita do próximo parêntese aberto à esquerda (alterne para a esquerda e direita para configurações da direita para a esquerda ).

Fazendo grandes mudanças

Para edições repetitivas, use a função de gravação de macro q para gravar e @ para reproduzir sequências dos mesmos comandos.

Use registradores em vez de copiar e colar, ele salvará uma viagem de ida e volta (já que as macros são armazenadas em registros, você pode usar os comandos register store / retrieve para corrigir erros na macro sem regravar).

Use o comando :%s/…/…/g para fazer substituições / exclusões globais.

Se você ainda não conseguir se sentir confortável, poderá editar o plug-in netrw : vim scp://target/somefile .

Como abaixo akira , isso permite que você rode o Vim em sua máquina local, onde a latência não é um problema. Quando você edita um arquivo remoto, o Vim o copia para a sua máquina local. Quando você salva, o Vim copia de volta para a máquina remota. Suporta muitos protocolos (WebDAV, HTTP (somente leitura), FTP, SSH (scp, sftp), rsync).

    
por 05.02.2010 / 09:42
3

Bem, Vi foi escrito para links de modem lentos, então o Vi / Vim é possivelmente o melhores ferramentas para usar nesta situação.

O que eu sugiro é considerar qualquer coisa que você se encontre repetindo e escrever macros para evitar a repetição.

Use: mapeie liberalmente e (porque é o Vim), o recurso de gravação de macro 'q' ( :help recording ).

Faça uso de contagens repetidas (como você identificou) e use movimentos para navegar (como pesquisar e ir diretamente para números de linha) em vez de bater em h / j / k / l.

Então, coisas como 5d para descer 5 linhas, } para alcançar a próxima linha vazia, Ctrl-I e Ctrl-O para voltar e avançar pelas posições usadas recentemente no texto ( :help jumps ) .

Considere também fazer o download do (s) arquivo (s) e editá-lo localmente e, em seguida, faça o upload para o servidor.

    
por 05.02.2010 / 09:25
2

como outros já escreveram, o vim foi projetado especificamente com conexões lentas em mente, então você só precisa aprender a usá-lo de forma mais eficaz. você precisa aprender (e saber a diferença entre) A / A, F / T, I / I, ^, $, o / o, P / P, D / D etc. Eles são todos importantes e podem salvar você tem muitos movimentos.

Mas o maior problema da minha experiência é psicológico. você sabia que eventualmente seria mais rápido, mas agora é mais rápido (e mais importante no cérebro :) só para usar as teclas de cursor:).

O que eu fiz para aprender vim eficaz é "me punir" toda vez que eu me vejo fazendo algo de forma ineficiente, voltando e refazendo o caminho certo de qualquer maneira.

Então, por exemplo, se você apenas "pegou" a si mesmo movendo 10 linhas para baixo com as teclas do cursor para trás e, em seguida, use smth como "10". ou mais importante, quase nunca usando as teclas de seta horizontais, use T, t, F, f, / ,? em vez de. e "punir" a si mesmo, refazendo-a novamente. você começará a fazer a coisa certa num instante.

oh, e outra coisa a observar é o modo de seleção visual. 99% não é necessário, pois o mesmo pode ser feito de forma diferente.

    
por 18.02.2010 / 16:32
0

Você já estudou o tutorial introdutório do vim? Depois disso eu sugiro pegar uma folha de fraude e ter certeza de que você pelo menos sabe o que cada item na folha de dicas está se referindo. Aprenda sobre o uso de expressões regulares na pesquisa e substituição. Aprenda sobre gravação e execução de macros. Aprenda sobre o modo visual e como você pode "canalizar" sua seleção em comandos externos e ler dados no comando externo.

    
por 05.02.2010 / 08:29
0

Existe também uma opção chamada 'scrolljump' que controla quantas linhas devem ser roladas quando o cursor se move para fora da tela. Isso pode ajudar a reduzir o quanto da tela precisa ser redesenhada.

Mas o plug-in netrw, como mencionado por Chris Johnsen, é uma solução excelente, usei-o muitas vezes para fazer o desenvolvimento em conexões incrivelmente lentas e não confiáveis.

    
por 05.02.2010 / 15:42

Tags