Pergunta

Há várias perguntas sobre o MODO sobre como obter o código de dobramento no emacs, sem ter para adicionar caracteres especiais, como "marcadores" nos comentários, por exemplo.Alguém disse que "não havia solução perfeita."
Parece que isso poderia ser feito, ao analisar a origem do programa que está sendo escrito e procure parênteses ou suporte, ou fazê-lo com base em recuo.Você também pode usar uma combinação de scripts que usam métodos diferentes.
Então, por que é comumente aceito que não há "perfeito" e simples forma de obter o código-dobrável em emac?Há algo no emacs ou sua arquitetura que faz com que seja difícil para o programa?Se fosse fácil, depois de tantos anos de pessoas inteligentes usando emacs, você poderia pensar que alguém teria o escreveu.

Foi útil?

Solução

Você deve jogar com Hideshow (hs-minor-mode) combinado com fold-dwim.el.Ele faz exatamente o que você sugeriu -- olha para correspondência chaves/parens, e pode ser configurado para voltar a cair no recuo.

Há uma robusta dobrar solução de línguas mais comuns, e se não houver, todos os pacotes de dobramento são altamente personalizáveis.Na verdade, a única desvantagem é a proliferação de métodos de dobragem (fold-dwim ajuda um pouco com isso);Eu costumava pensar que porque ninguém poderia me apontar para uma solução definitiva, dobrável foi difícil ou impossível — de fato, o oposto é verdadeiro.Você apenas tem que experimentar um pouco para ver o que funciona melhor para você.

Eu tenho usado folding.el (e.g.para o grupo de coisas na minha .emacs), outline-minor-mode, e agora Hideshow.Há alguma chance de que nenhum deles iria funcionar exatamente do jeito que você deseja para a direita fora da caixa (por exemplo,você pode precisar configurar um esboço regex, ou definir marcas de dobradura para folding.el), mas ele gira para fora para ser fácil.O padrão de combinações de teclas podem ser um pouco barroco, mas isso é resolvido por fold-dwim e/ou hideshow-org (altamente recomendado para Hideshow, cf o Emacswiki hideshow página;você também pode imitar hideshow-org's comportamento para outros modos de dobramento com alguns rápida e suja diretī orio elisp e fold-dwim).Uma vez que você descobrir o seu preferido instalação, basta ativá-lo automaticamente, através de ganchos ou buffer-variáveis locais, e veja o seu código dobrável :) (veja abaixo, observe o clicável +'s na margem).

alt texto http://img198.imageshack.us/img198/4029/screenshot1oc.png

Outras dicas

Você deve olhar para Cedet. Ele dobra muito bem o código, e muitos outros recursos sofisticados que você provavelmente está procurando se estiver mudando de um IDE para o EMACS.

http://cedet.sourceforge.net/

Especificamente, procure o modo `Global-semântico-desbotamento '

Você não precisa de nada extra, basta ativar o modo minor de esboço para os tipos de arquivo que deseja dobrar.

Mas, de fato, existem várias soluções para o Emacs; Eu listei alguns deles (aqueles que eu já encontrei) em http://en.wikipedia.org/w/index.php?title=code_folding&oldid=375300945#cite_note-2.

No entanto, há coisas que estou perdendo: em alguns casos, gostaria de combinar vários mecanismos: por exemplo, para o Markdown, gostaria de usar dobragem baseada em contorno (para seções) e dobragem baseada em indentação (para Citações, blocos de código etc.) - Para não se preocupar em implementar um analisador completo para o Markdown.

Aqui estão eles:

Dobragem à base de token em EMACS

A dobragem à base de token em EMACS é obrigada pelo dobrando Modo Minor.

Dobragem baseada em indentação em EMACS

Pode -se usar o set-selective-display função em emacs para ocultar linhas com base no nível de indentação, conforme sugerido no Dobragem de código universal Nota.

Dobragem dependente da sintaxe em EMACS

A dobragem dependente da sintaxe em EMACS é suportada por:

Vários mecanismos de dobragem são unificados peloFold-dwim interface.

Veja também http://www.emacswiki.org/emacs/categoryhidestuff.

Dobragem de regiões selecionadas pelo usuário em EMACS

A dobra de regiões selecionadas pelo usuário em EMACS é implementada pelo esconder-region-hide comando.

Tenho vindo a utilizar dobrável de modo por algum tempo.Com a auto-inserir modelo e abrevs ele funciona muito bem para mim, para alguns de nice tijolos de código.

Sendo capaz de produzir o buffer dobrado (para impressão/e-mail) sempre foi um desejo meu.Alguns dos meus dobrável tags são secure / senha esconder.

Sim, finalmente, a dobragem de código está lá no Emacs. Experimente o presente de Yafolding na biblioteca de pacotes melpa.org.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top