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:
:ck
elvis
é aberta com o cursor na linha do primeiro erro 2
:wq
e pressione enter para voltar para a primeira instância 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.