Quais pacotes estão disponíveis para edição modal no Emacs? O que você usa e por quê?
Vamos tentar postar um pacote por resposta. Proponho mencionar vantagens e deficiências de cada pacote.
Aqui está minha definição de edição modal (não consegui encontrar o artigo dedicado da Wikipediaeadia):
Edição modal - estilo de edição de texto quando o usuário alterna periodicamente geralmente entre o "modo normal" quando as teclas não causam a inserção de seus caracteres, mas executa várias operações no texto e o "modo de inserção" quando as teclas inserem os caracteres correspondentes. Pode haver mais modos, é claro. A maioria dos editores modernos não é modal. Um exemplo de editor de texto modal é o Vi (Vim).
key-bindings
prefix-keys
Mark Karpov
fonte
fonte
Respostas:
evil
, O E xtensible VI G Ayer para EmacsNome questionável à parte,
evil
é o estado da arte atual quando se trata devim
emulação no Emacs (e possivelmente em qualquer outro lugar, nesse caso). Ele suporta muitos recursos que outros pacotes de emulação do Vim evitam, incluindo:vim
textobjectsvim
registravim
macros do tecladoex
comandosVantagens
vim
significa que você não perde sua memória muscular ao mudar para sistemas sem o Emacs.vim
foram portados paraevil
.vim
gramática de estilo é modular e se presta muito bem à extensão de usuárioevil
em si é muito extensível: crie seus próprios objetos de texto, operadores e movimentos!Desvantagens
evil
torna os casos de uso mais comuns ridiculamente fáceis.evil
é um sistema muito complexo. Hackear o núcleo maligno pode se tornar bastante envolvido.vim
as combinações de teclas não são necessariamente ergonomicamente ideais. Às vezes, eles podem se sentir um pouco arbitrários quando transportados para um sistema diferente.fonte
Existe
god-mode
( https://github.com/chrisdone/god-mode ), que usa as ligações de teclas padrão do Emacs, mas elimina a necessidade de manter os modificadores pressionados. Quando o modo deus está ativado, asC-...
ligações não requerem modificador e asM-...
ligações usam um prefixo em vez de um modificador.Como um exemplo da página do github:
fonte
Adicionando o meu, obrigado @Mark pelo incentivo.
Xah Fly Keys
Projetado desde o início para o emacs, com o objetivo de ser o sistema MAIS eficiente, com anos de experiência no modo ergoemacs. As escolhas principais são baseadas na ciência, tanto quanto possível, com base em estatísticas de frequência e pontuação fáceis de pressionar. Os comandos usados com mais freqüência são mapeados para as teclas mais fáceis de pressionar. Outros problemas, como agrupamento e bigram de ligação de teclas, também são considerados a partir de 3 anos de experiência semanal.
Pontos interessantes:
Desvantagens:
Sou o autor, por isso esteja avisado de que posso ser inconscientemente tendencioso. Sinta-se livre para comentar ou corrigir.
fonte
Modalka deve ser o garoto mais novo no bloco de edição modal. O projeto github parece ter 10 dias. Não tenho tempo de uso suficiente para comentar ou avaliar, mas eis como está descrito:
A documentação também compara e contrasta Modalka com outras soluções modais comuns, como
evil
,god-mode
,boon
, etc.fonte
Boon
Boon é um dos pacotes menos conhecidos para edição modal. Ele não emula o Vi (ou o Vim), mas fornece o layout original otimizado para o layout do teclado Colemak.
Vantagens e princípios de design
Alocação espacial em primeiro lugar, mnemônica em segundo: a alocação de teclas para comandos é baseada em prioridade nos locais das teclas no teclado. Tudo o que está impresso na tampa da chave é uma preocupação secundária.
Rolagem fácil com os dedos: a combinação comum deve ser alternada à esquerda / direita ou rolagem fácil com uma mão.
Uso da linha de casa e dedos fortes para os comandos mais usados
Navegação fácil: muitos comandos estão vinculados à navegação. Isso facilita a movimentação. Como os movimentos duplicam como definições de região, torna os comandos de manipulação (operadores) mais poderosos.
Desvantagens
fonte
O Ergoemacs também suporta edição modal. Ele não emula o vi, mas usa a tecla Alt para os comandos mais usados. Por exemplo, mover o cursor é Alt mais T. inverso à direita (no QWERTY é Alt+ jpara left, Alt+ lpara direita, Alt+ ipara upe Alt+ kpara down). A exclusão de caracteres ou palavras é feita Altcom as teclas da linha inicial do lado esquerdo. As opções de teclas são baseadas na frequência de comando e na posição da tecla para facilitar a impressão.
Além do paradigma tradicional modal, existe um paradigma modal quase que permite que qualquer
C-x
ouC-c
combinação de teclas para ser atingido sem a utilização de quaisquer modificadores (como em modo deus).C-c
com a tecla de controle pressionada e o QWERTY apps dparaC-x
.Além de alterar as teclas de comando, o ergoemacs-mode permite alterar as coisas sobre a sequência de teclas enquanto você a digita:
O ergoemacs-mode também tenta respeitar tudo o que o modo faz com as teclas fundamentais. Por exemplo, se o modo org define uma chave especial para
next-line
, o ergoemacs usa esse comando para Alt+ kquando está no modo org.Vantagens:
C-o
), Fechar (C-w
), Selecionar tudo (C-a
), Copiar (C-c
), Cortar (C-x
), Colar (C-v
), etc.Desvantagens:
Consulte https://github.com/ergoemacs/ergoemacs-mode
fonte
Outra opção semi-modal é o Hydra:
https://github.com/abo-abo/hydra
De acordo com o site
Imagine que você vinculou Cc j e Cc k na sua configuração. Você deseja chamar Cc j e Cc k em alguma sequência (arbitrária). Hydra permite que você:
Ligue suas funções de forma que pressionar Cc jjkk3j5k seja equivalente a pressionar Cc j Cc j Cc k Cc k M-3 Cc j M-5 Cc k. Qualquer chave que não seja j ou k sai desse estado.
Atribua uma dica personalizada a esse grupo de funções, para que você saiba imediatamente após pressionar Cc que pode seguir com j ou k.
Eu não usei, mas parece interessante.
fonte