Então, eu sou principalmente um desenvolvedor .Net que faz algumas coisas em Java, Python e algumas outras de tempos em tempos. Ouvi muitas pessoas elogiarem o Vim e o Emacs por aumentarem bastante a eficiência, uma vez que os princípios são detalhados. Definitivamente, posso ver quantos dos recursos podem ser muito úteis com prática suficiente e até acreditar que a curva de aprendizado provavelmente vale o esforço. No entanto ... parece que você realmente precisa ser algum tipo de assistente de macros e teclas de atalho para ser tão eficiente no Vim ou no Emacs quanto o desenvolvedor comum é no Visual Studio, Netbeans, Eclipse ou outras plataformas. Comecei a aprender a usar o Vim e acho que alguns de seus recursos são impressionantes (edição de colunas, por exemplo), mas parece que muitas das ferramentas fornecidas pelos IDEs pesados simplesmente não puderam ser substituídas. editor.
- gerando arquivos dbml para Linq-to-SQL
- Teste automatizado
- projetando UIs
- Criando / organizando projetos e soluções
Eu sei que o Vim e o Emacs podem fazer muitas das mesmas coisas com muita força que o VS pode (como intellisense, refatoração etc.) e pode ser capaz de fazer alguns ou todos os exemplos que forneci, mas é realista dizer que alguém que trabalha nessas plataformas se beneficiaria com o Vim ou o Emacs?
Respostas:
Você tem uma mistura de conceitos, o que talvez não seja surpreendente, já que o VS combina muitos recursos bastante díspares. Uma citação (deste site) sugere que o Emacs não é um bom IDE, o Unix é um bom IDE. A idéia é que, no mundo Linux / Unix, você confie em várias ferramentas especializadas que funcionam bem juntas, em vez de uma ferramenta monolítica que faz tudo.
Agora, eu programa principalmente em C # e uso o VS para fazer isso. Também gosto muito do Emacs e o uso basicamente para todo o resto. Agora, como você diz, o que você pode fazer no Emacs e o que é melhor fazer no Emacs são distintos. Mas, em muitos casos, não é um mapeamento 1 para 1 e existem diferentes maneiras de atingir os mesmos objetivos usando um editor de texto e / ou outras ferramentas.
Originalmente, eu abordaria cada um dos seus pontos, mas a resposta sempre se resumia a "sim, você poderia" de alguma forma. Normalmente, você confiaria em: 1) uma ferramenta externa (como um designer de interface do usuário) para gerar código para você, importá-lo; 2) suporte de automação de dentro do editor (como o código Elisp no Emacs) para automatizar tarefas repetitivas; ou 3) você se ajustaria ao uso de ferramentas baseadas em texto em vez de visuais (como usar o MSBuild e escrever seus próprios arquivos de projeto em vez de depender da configuração do VS).
No mundo do Emacs, você não tem uma ferramenta que faz tudo, possui muitas ferramentas e a capacidade de aumentar o número de ferramentas necessárias. Ainda não o conheço o suficiente para fazer tudo isso, então uso o VS e estou feliz com as ferramentas que ele me fornece. O VS é um IDE muito poderoso e muito bom. Agora, se eu estivesse usando Java, teria que debater qual ferramenta usaria porque não conheço muito bem o Eclipse ou o IntelliJ. Para qualquer outra linguagem, o Emacs vence praticamente porque fará muito mais por mim do que qualquer outro editor de texto ou IDE pela metade que essas linguagens possam usar. (Exceto, talvez, Smalltalk, mas esse é um caso único.)
fonte
Deixe-me dar um exemplo: trabalho em um sistema amplamente (mas não 100%) codificado em C #. O sistema não pode ser criado a partir do Visual Studio - é muito complexo. Portanto, eu não tenho um arquivo sln (algumas pessoas tentaram manter um, mesmo que não construíssemos o produto com ele, mas isso acabou sendo uma tarefa impossível) e não tenho benefícios de intellisense, navegação de código, diagramas de classes, etc. A ferramenta que funciona para mim é vim + ctags. Mesmo isso não é perfeito (é fácil confundir as ctags), mas é muito melhor do que usar um editor de código inferior sem suporte à navegação por código.
Agora, entendo que a maioria dos desenvolvedores .NET ou Java não está na mesma posição que eu e provavelmente é melhor usar um IDE se ele tiver um bom editor de código ou pelo menos um suplemento que melhore o padrão. Para o Visual Studio, existem complementos como o VsVim que podem tornar a experiência de codificação mais agradável. O mesmo para o Eclipse AFAIK.
fonte
Duvido que muitos mais usem o VIM ou o Emacs exclusivamente. Mas ainda não encontrei um desenvolvedor que não use um editor de texto (seja um desses ou qualquer outra coisa) em vez de um IDE completo para algumas coisas, geralmente muitas coisas.
Lembre-se de que há muito mais em seu trabalho do que escrever código Java, C # ou C ++. Existem scripts ANT, makefiles, arquivos XML, arquivos de configuração de vários tipos. E para muitas tarefas pequenas, o tempo de inicialização desse IDE pode ser simplesmente muito longo. O Eclipse pode levar alguns minutos para começar, VS semelhante. Para alterar rapidamente algo em uma única fonte ou apenas verificar algo em um arquivo conhecido, é muito longo. Carregar o arquivo no VIM leva apenas alguns segundos.
fonte
Acho que usar um IDE e vim (meu editor favorito pessoal) não são conceitos mutuamente exclusivos. Ao desenvolver o .NET, costumo configurar uma combinação de teclas de atalho que abrirá o arquivo atual no qual estou trabalhando no IDE no vim e colocarei o cursor no mesmo local. Dessa forma, se eu quiser fazer o tipo de coisa em que o vim é ótimo (como usar macros, edição vertical, re-indentação, difração etc.), pressione o combo e pressione o meu editor favorito. minhas alterações, salve o arquivo e saia e, em seguida, voltarei ao IDE novamente (você pode configurá-lo para que o arquivo seja recarregado automaticamente quando for editado fora do IDE no VS). Dessa forma, consigo o melhor dos dois mundos.
Eu costumava usar linguagens de script para manipular arquivos de texto de maneiras complicadas. Depois que descobri o poder de usar as macros do vim (e alguns outros recursos), descobri que posso fazer esses tipos de edições / manipulações com muito mais rapidez e eficiência do que com uma linguagem de script.
É muito comum eu gerar scripts fora do shell para fazer algumas coisas complicadas usando o vim, executar o shell script que eu criei e jogá-lo fora.
meus 2 centavos :)
fonte
Dê uma olhada nos projetos OpenIDE e testes contínuos . O primeiro se concentra em adicionar o suporte ao projeto .NET a qualquer editor, incluindo VIM e Emacs. O outro é um corredor de teste contínuo semelhante ao AutoTest / pythons Sniffer / Autonose do ruby. Pode ser executado como um plug-in do VS ou autônomo.
fonte