
O BIM é um editor de texto do terminal com destaque de sintaxe.
Inspirado por Vim (pode-se dizer uma imitação ruim) e com edição semelhante baseada em modo semelhante, o BIM foi originalmente escrito para Toaruos, mas também foi testado em Linux, Sortix, FreeBSD e MacOS.
O BIM pretende o editor de texto incluído em Toaruos, um sistema operacional de hobby construído do zero.
O BIM pretende ser leve e característico, sem dependências externas*, proporcionando uma experiência de edição moderna em um pacote leve e extensível.
hjkl .git diff em linha, juntamente com alterações não salvas. O BIM requer uma biblioteca C suficientemente semelhante a UNIX e um compilador C99 com certas extensões GNU (como __attribute__((constructor)) ).
O BIM 3 também precisa de Kuroko, que possui requisitos semelhantes. O BIM está tipicamente estaticamente ligado ao intérprete Kuroko para construções do Linux e vinculado dinamicamente para construções de Toaruos.
O BIM foi construído com sucesso para vários alvos, incluindo vários BSDs, Toaruos, Sortix e outros.
Primeiro, instale Kuroko:
git clone https://github.com/kuroko-lang/kuroko
cd kuroko
make && sudo make install # You can obtain deb packages, or build one with 'fpm' with 'make deb'Em seguida, construa BIM:
git clone https://github.com/klange/bim
cd bim
make && sudo make installEm seguida, instale a configuração de exemplo:
cp docs/example.bim3rc ~ /.bim3rc O BIM foi testado em vários terminais e, embora não use bancos de dados terminfo , a funcionalidade básica deve estar disponível na grande maioria dos emuladores remanescentes e até no hardware clássico do DEC.
Se o terminal que você estiver usando tiver algumas peculiaridades ou não jogar bem com as suposições padrão, você poderá modificar o comportamento para se adequar ao seu ambiente.
Os recursos de capacidade podem ser controlados com "peculiaridades", seja através do comando quirk em um BIMRC ou com a opção -O de linha de comando.
O formato do comando quirk é quirk(envvar,teststr,'no...','can...',...) onde ENVVAR é o nome de uma variável de ambiente e teststr é uma string a serem verificados no qual deve ser um prefixo da variável de ambiente.
Por exemplo, quirk('TERM','xterm','nounicode') desativará a saída Unicode em todos os terminais que começam com "Xterm" (incluindo "Xterm-256Color").
Você também pode especificar peculiaridades com a variável de ambiente $COLORTERM ou a variável $TERMINAL_EMULATOR definida por determinados IDEs.
Alguns exemplos de configurações de peculiaridade são fornecidos no docs/exemplo.bim3rc e podem ser um bom lugar para começar se estiver enfrentando problemas de renderização.
O suporte Unicode/UTF-8 é recomendado e assumido por padrão. A opção nounicode Quirk desativará a saída dos caracteres UTF-8 e os renderizará como sugestões do CodePoint como <U+1234> em vez disso.
A cor de 256 cores e 24 bits também é assumida por padrão, desative-as com as peculiaridades no256color e no24bit , respectivamente.
Se você tiver um terminal particularmente baixo, o nobright Quirk sugerirá temas que apenas as 8 cores mais baixas devem ser usadas.
Três modos de rolagem são suportados: rolagem de turno, inserção/exclusão de rolagem e rolagem de redefinição.
A rolagem de turno ( ^[[1S / ^[[1T ) é assumida por padrão. Se o seu terminal suportar inserir / excluir rolagem ( ^[[L / ^[[M ), ative a Quirk caninsert .
Se nenhuma opção de rolagem estiver disponível, use o noscroll Quirk para redesenhar o campo de texto ao rolar. Isso provavelmente será lento!
O suporte do mouse com ^[[?1000h é assumido por padrão. Use o nomouse Quirk para desativá -lo.
Se o seu terminal suportar modos de mouse SGR ("1006"), ative a Quirk do cansgrmouse . A maioria dos terminais do tipo Xterm suporta isso e fornecerá suporte para clicar em células em janelas de terminal maiores.
O suporte à tela alternativo também é assumido. Normalmente, isso é bom, mesmo que o seu terminal não o ofereça, mas se causar problemas, a peculiaridade noaltscreen o desativará.
O Keybindings padrão pode ser encontrado em docs/mappings.md.
Esta listagem pode ser gerada com bim --dump-mappings .
Uma lista completa dos comandos disponíveis pode ser encontrada no docs/comandos.md.
Esta listagem pode ser gerada com bim --dump-commands .
Você pode usar o BIM para exibir arquivos no seu terminal com destaque de sintaxe com bim -c (sem números de linha) e bim -C (com números de linha).

Você pode transmitir o texto para BIM para edição com bim - . Observe que o BIM aguardará o final do arquivo antes do lançamento, portanto, isso não é adequado para uso como pager (o suporte do pager está planejado).
O BIM também pode ser usado para gerar documentos HTML com código-fonte iluminado por sintaxe com bim --html ; O tema configurado será usado.
O BIM inclui um punhado de esquemas de cores para o destaque da interface e sintaxe.
Um tema simples de 16 cores. Pode ser configurado para uso em terminais com ou sem suporte a cores brilhantes. Parece um pouco com irssi.

Um tema de cores originais de 24 bits com marrons rústicos e cores pastel moderadas.

Uma versão de 256 cores do Sunsmoke para uso em terminais que não suportam cores de 24 bits.

Um tema de 256 cores baseado no tema do mesmo nome para Vim.

Um tema de cores de 24 bits baseado na paleta de cores popular.

Um tema de cores de 24 bits baseado no Atom and Sublime, com blues de baixo contraste.

Baseado em selenizado por Jan Warchoł

O BIM importará automaticamente ~/.bim3rc na inicialização.
Um exemplo detalhado do BIMRC está disponível em docs/exemplo.bim3rc.
Os scripts BIM estão escritos em Kuroko.
Nem todos os marcadores de sintaxe estão completos ou suportam todos os recursos de seus respectivos idiomas.
A funcionalidade principal de Bim vive em bim.c
Os marcadores e os temas da sintaxe são escritos em Kuroko e encontrados nos diretórios syntax e themes .
O mecanismo de expressão regular de Bim é algo que eu cozinhei ao acaso. Sua funcionalidade é um pouco limitada e o comportamento está sujeito a alterações.
.^ corresponde ao início de uma linha, $ corresponde ao fim.. corresponde a qualquer personagem.[] Os colchetes podem ser usados para correspondências alternativas.^ Como o primeiro personagem nega a partida.ab para intervalos simples.- em uma expressão de suporte, coloque -o antes de qualquer outro personagem, mas depois de uma negação ^ , como [-_*] .^ em uma expressão de suporte, use -o qualquer posição após a primeira. [^^] significa "qualquer coisa, exceto ^ ".] em uma expressão de suporte, use ] .t . Use \ para uma barra de barra literal.. , [] e caracteres únicos podem ser combinados com o seguinte, com tracktracking:? Opcionalmente corresponde uma vez.* corresponde a qualquer número de ocorrências.+ corresponde pelo menos em ocorrência.* e + são gananciosos por padrão, mas podem ser seguidos ? para torná-los não-greedos.() Parênteses pode ser usado no nível superior para grupos de captura.Ao realizar substituições, algumas sequências de fuga são suportadas:
t insere um caractere de guia. \ insere uma barra de barra literal.