Como você configura uma função do tipo “parser compilador” para ajudar a editar scripts simples no elvis?

2

Estou usando o elvis para editar arquivos etc. um contexto em que limitar os toques de tecla faz a diferença 1 . Eu não conheço todas as implicações de suas diferenças de vim e sou realmente inexperiente com ambos. Eu sei que elvis era o clone vi pioneiro, amplamente admirado nos anos 90 por sua concisão, e muitos recursos .

Um recurso que realmente acho útil em ambos os editores é a compilação opções com o comando make . Mas não há esse recurso para scripts que eu conheço. Sem dúvida, os scripts são arquivos menores e geralmente não envolvem o mesmo tipo de conjunto de ferramentas que a compilação. No entanto, acabei definindo um alias ( ck ) no meu arquivo .elvisrc :

source $HOME/.exrc
:display syntax
:set number
alias ck {
! rm tempi
! (bash "%" >/dev/null) 2>&1 | sed -n 's/.*line \([[:digit:]]*\).*//p' >tempi
! elvis "%" +"$(cat tempi | head -n 1)"
}

Isso remove um arquivo chamado tempi ; executa o script carregado em bash ; procura linhas na saída stderr contendo a palavra linha seguida por um espaço e alguns dígitos e imprime apenas o número; escreve o (s) número (s) no arquivo; então nós finalmente carregamos nosso script novamente em outra instância de elvis e vamos ( + ) para a primeira linha # que pegamos do arquivo tempi . Não é muito elegante e requer o seguinte fluxo de trabalho:

  1. Abra o script e execute :ck
  2. Outra instância de elvis é aberta com o cursor na linha do primeiro erro 2
  3. Edite e salve / saia do :wq e pressione enter para voltar para a primeira instância do elvis
  4. Repita até que não haja mais erros, então não salve o arquivo principal, saia do elvis :q! e recarregue nosso arquivo - agora corrigido - usando histórico de comandos

Existe uma maneira melhor de fazer algo assim com elvis , ou seja, sem muitas instâncias, etc.?

1. Um tablet sem teclado externo.

2. Se não houver erro, o cursor vai para o final do arquivo.

    
por jus cogens prime 13.07.2014 / 14:17

0 respostas

Tags