Vis pretende ser um editor moderno, livre de legados, simples, mas eficiente, combinando os pontos fortes do vi(m) e do sam.
Ele estende a edição modal do vi com suporte integrado para múltiplos cursores/seleções e combina-o com a linguagem de comando baseada em expressões regulares estruturais do sam.
Um editor universal, possui suporte Unicode decente e deve lidar com arquivos arbitrários, incluindo arquivos grandes, binários ou de linha única.
O realce de sintaxe eficiente é fornecido usando gramáticas de expressão de análise, que podem ser convenientemente expressas usando Lua na forma de LPeg.
O núcleo do editor é escrito em uma quantidade razoável de código C limpo (sua quilometragem pode variar), moderno e livre de legado, permitindo que ele seja executado em ambientes com recursos limitados. A implementação deve ser fácil de hackear e encorajar a experimentação. Há também uma API Lua para extensões em processo.
Vis se esforça para ser simples e se concentra em sua tarefa principal: gerenciamento eficiente de texto. O manuseio da área de transferência e do dígrafo, bem como uma caixa de diálogo difusa para abrir arquivos, são fornecidos por utilitários independentes. Existem planos para usar uma arquitetura cliente/servidor, delegando o gerenciamento de janelas ao seu sistema de janelas ou multiplexador de terminal favorito.
A intenção não é ser compatível bug por bug com vi(m). Em vez de,
nosso objetivo é fornecer recursos de edição mais poderosos baseados em um design elegante e implementação limpa.
Para construir o vis você precisará de um compilador C99, um ambiente compatível com POSIX.1-2008 e também:
Supondo que essas dependências sejam atendidas, execute:
$ ./configure && make && sudo make install
Por padrão, o script configure
tentará detectar automaticamente o suporte para Lua usando pkg-config(1)
. Consulte configure --help
para obter uma lista de opções suportadas. Você também pode ajustar manualmente o arquivo config.mk
gerado.
Ou simplesmente use um dos pacotes fornecidos pela distribuição.
A documentação do usuário final pode ser encontrada na página de manual vis(1)
e no Wiki. Leia o FAQ para perguntas comuns. Aprenda sobre algumas diferenças em comparação com sam(1)
e vim(1)
, respectivamente.
A API C e a documentação da API Lua também estão disponíveis.
Alguns recursos que não serão implementados:
#ifdef
Existem muitas maneiras de contribuir, abaixo estão algumas ideias:
:help
Confira a visão geral do desenvolvedor para começar e não hesite em fazer perguntas no canal IRC #vis-editor
no libera (inscreva-se através do seu navegador).