Hora de largar o Emacs e o vi? [duplicado]

39

Sempre que você estiver procurando por um editor de texto, não importa qual idioma esteja usando, vi e Emacs são os melhores do mundo.

No entanto, eles são antigos e temos alternativas melhores (pelo menos eu espero que o façam).

Por que os desenvolvedores estão presos nesses dois editores? Não deveríamos deixá-los e tentar inventar ou procurar algo novo?

(tenho total respeito pelos fãs do Emacs e vi).

    
por Chiron 10.04.2011 / 22:30
fonte

20 respostas

80

As principais razões pelas quais eu prefiro um editor baseado em terminal em um IDE completo:

  • Acesso remoto. Eu posso ssh para qualquer computador que eu precise, acione o Vim e comece a trabalhar. No dia-a-dia, usar screen session e Vim permite fácil acesso de qualquer local.
  • Teclas . Há tantas teclas digitadas, uma vez que você pode utilizar o Emacs ou o Vim de forma adequada. Mover minha mão entre o teclado e o mouse me irrita ...

IDEs são bons para dar aulas em seu projeto, mas para mim, minha produtividade é maior em termos de magnitude usando o Vim.

    
por 10.04.2011 / 22:32
fonte
64

Os programadores são famosos por usar as ferramentas que os ajudam a realizar o trabalho da maneira mais eficiente possível. Esses editores são antigos e ainda estão sendo usados porque são bons e sólidos editores, comprovados pelo tempo. Se eles fizerem o trabalho e fizerem o trabalho bem , por que devemos deixá-los em favor de outra coisa?

    
por 25.03.2011 / 02:17
fonte
54

Você assume que eles não evoluem. Emacs continua a crescer aos trancos e barrancos; e, enquanto o vi estava ficando meio que venerável, o Vim o rejuvenesceu e, se alguma coisa está crescendo (no mínimo, pelo recurso) mais rápido que o Emacs.

Mas quando se trata disso, é o que você trabalha melhor com isso. Se você é mais produtivo no Eclipse, mais poder para você. O mesmo se você preferir Vim.

    
por 25.03.2011 / 02:19
fonte
37

Muitos (a maioria?) dos melhores programadores que eu conheço desprezam os IDEs e confiam apenas no Emacs. Eu não sou tão obstinado e uso tanto o Eclipse quanto o Emacs, mas existem algumas razões pelas quais prefiro usar o Emacs:

  • Experiência consistente com QUALQUER idioma - O suporte no Eclipse para alguns dos idiomas mais recentes (Scala, Clojure, etc.) é inconsistente na melhor das hipóteses e subpar na pior. Os autores de plugins estão trabalhando duro para melhorar a experiência, mas muitas vezes me deparo com pequenas coisas que parecem insignificantes. Claro que você pode sempre mudar para outro IDE que tenha melhor suporte para esse idioma específico, mas agora você está fazendo malabarismos com IDEs. Eu nunca me senti assim enquanto trabalhava no Emacs.

  • Eu não gosto de IDE "mágica" - IDEs tendem a fazer um monte de coisas automaticamente em nome da conveniência. Isso é ótimo ... até que algo se rompa. Então, pode ser um processo frustrante ou mesmo irritante, colocando as coisas de volta nos trilhos.

Estou brincando com a ideia de mudar para o redcar . É extensível como o Emacs, mas ao invés de Emacs Lisp você usa JRuby . É leve e definitivamente não é um IDE completo. Se você estiver em TextMate , ele é compatível com os pacotes TextMate, mas tem os benefícios de ser gratuito e de código aberto. Definitivamente uma ferramenta que vale a pena conferir, especialmente para desenvolvedores Ruby.

    
por 10.04.2011 / 22:43
fonte
26

shouldn't we drop them and trying to invent or looking for something new?

tl: dr: Muitas pessoas não querem aprender um novo editor

A resposta completa:

A UNIX wizard hears cries of torment from his apprentice's computer room where the apprentice is studying, and goes to investigate.

He finds the apprentice in obvious distress, nearly on the verge of tears. "What's the problem?" he asks. "Why did you cry out?"

"It's terrible using this system. I must use four editors each day to get my studies done, because not one of them does everything."

The wizard nods sagely, and asks, "And what would you propose that will solve this obvious dilemma?"

The student thinks carefully for several minutes, and his face then lights up in delight. Excitedly, he says, "Well, it's obvious. I will write the best editor ever. It will do everything that the existing four editors do, but do their jobs better, and faster. And because of my new editor, the world will be a better place."

The wizard quickly raises his hand and smacks the apprentice on the side of his head. The wizard is old and frail, and the apprentice isn't physically hurt, but is shocked by what has happened. He turns his head to face the wizard. "What have I done wrong?" he asks.

"Fool!" says the wizard. "Do you think I want to learn yet another editor?"

Immediately, the apprentice is enlightened. http://neugierig.org/content/unix/

    
por 09.06.2015 / 06:11
fonte
20

Acho que os IDE's (Visual Studio, Eclipse, IntelliJ) estão aptos a resolver outra classe de problemas que os que você resolve com o emacs / Vim.

Quando você tem uma plataforma grande para codificar, com muitas bibliotecas e alta integração entre todos os elementos (parece Microsoft), um IDE irá provar que vale a pena. Alguns se referem a isso como "colando bibliotecas" e não supõem que seja "código real". Ele irá ajudá-lo muito ao detectar erros no início (de uma forma que nem o Emacs pode).

Quando você desenvolve aplicativos de usuário final para (digamos) o Android, você pode fazê-lo sem o Eclipse. No entanto, com todos os tipos de arquivos que precisam ser incluídos antes da implementação, o Eclipse ajudará bastante, automatizando essas tarefas para você.

Portanto, se você for um desenvolvedor de aplicativos trabalhando em apenas uma plataforma com muitas bibliotecas (desenvolvendo aplicativos de classe corporativa em Java EE, .NET etc.), um IDE será uma "melhoria" em seu fluxo de trabalho. No entanto, assim que você tiver que trabalhar regularmente em um ambiente de terminal (em servidores Unix, por exemplo) ou estiver usando muitas linguagens diferentes, o No IDE pode medir as qualidades do Vim / emacs.

Uma última coisa é que trabalhar usando o Vim / emacs obriga você a entender pelo menos um pouco de plataforma / linguagem antes de usá-lo. Muitos IDEs permitem que você opere em um idioma sem saber o que está acontecendo; então, usar o Vim / emacs forçará a si mesmo a ter alguma ideia do que você realmente está fazendo.

    
por 25.03.2011 / 09:30
fonte
14

Ao longo de aproximadamente 40 anos na computação, como estudante e profissional, usei pelo menos quinze (15) diferentes editores e IDEs. De todos eles, o emacs foi de longe o melhor, então e agora.

Primeiro, passo muito tempo entre vários arquivos e vários lugares em arquivos individuais para ter uma boa experiência com qualquer editor que se recuse a deixar ver mais de um arquivo por vez ou mais de dois ao mesmo tempo. O Emacs é o único editor ou IDE que vi que me permite ver tudo o que preciso de uma só vez. (Alguns anos atrás, enquanto explorava um sistema legado, eu rotineiramente tinha oito (8) painéis abertos em uma janela do emacs. Ainda hoje, eu tenho rotineiramente três ou quatro painéis abertos, e algumas vezes eu tenho duas ou três invocações de emacs abertas, porque eu preciso de vários shells, e eu preciso copiar e colar os resultados entre eles.)

Em segundo lugar, eu ainda sou apenas humano, e ocasionalmente cometi erros. Todos os outros editores que eu já usei ficaram perfeitamente felizes em me deixar atirar com o pé, SEM AVISO, sem capacidade de recuperação, me deixando querendo cometer atos violentos e indescritíveis contra o autor do dito PIBOS. (Os que me pegaram não foram tão ruins quanto o pote que quase deixou Charles Simonyi linchado enquanto estava na Xerox PARC, antes de ir para a Microsoft e infligir notação húngara ao mundo - um ato pelo qual o linchamento é totalmente mole demais uma punição.) Emacs nunca fez isso comigo; nunca destruiu irrevogavelmente qualquer coisa sem me dar um GRANDE aviso. Quando eu ainda era novo no emacs, eu ocasionalmente falava "O que acabou de acontecer?", E eu invariavelmente descobri o que tinha feito em poucos segundos, e sabia como consertá-lo rapidamente.

Não existe um editor que realmente aumente a produtividade . O melhor que você pode obter é uma degradação mínima da produtividade. A métrica, para mim, é "Quão ruim isso me atrasa?" Em comparação com o emacs, sobre os tipos de coisas que normalmente faço, tudo o mais é muito pior.

Minha APENAS queixa com o emacs era que não estava disponível para o Oberon, quando eu estava tocando com o Oberon alguns anos atrás.

    
por 25.03.2011 / 13:11
fonte
8

Sou usuário do Vim.

Eu tenho que usar IDEs devido aos projetos em que estou trabalhando, você não pode contornar isso às vezes. Sou bastante competente no uso de Código :: Blocks e Eclipse , no entanto, sempre que possível, eu gosto da interface do usuário dos IDEs para trabalhar como o do Vim.

Eu tenho meu próprio esquema de cores para o Vim e quero que os editores de texto do outros IDEs funcionem exatamente da mesma maneira.

Eu gostaria de ter um IDE, que não tenha o editor de texto e onde eu possa plug-in o editor que eu quero. Não seria legal, se eu pudesse conectar meu Vim padrão ao Emacs ou ao Code :: Blocks, mas ter o resto do IDE por aí?

De alguma forma, escapou do escopo dos desenvolvedores de IDE, mas eu secretamente desejo que quase sempre, quando eu estou usando apenas Vim e Makefiles para projetos maiores, ou um IDE e seu editor de texto pesado.

    
por 25.03.2011 / 07:06
fonte
8

Minha IDE de escolha é o Linux. Heck, ele pode executar outros IDEs, servir sites, executar programas em uma variedade de idiomas e, combinando coisas (o pipe), pode executar programas juntos que foram escritos em diferentes idiomas como se fossem um. Essa coisa é incrível. Ah, e ele pode se conectar à internet e fazer todo tipo de coisas interessantes com isso também, incluindo gerar outras versões de si mesmo. Coolio!

Não se contente com um IDE quando você já tiver o Linux.

    
por 25.03.2011 / 23:46
fonte
7

Além de um pouco de BASIC quando criança, aprendi programação no Unix. A filosofia do Unix é ter muitas ferramentas menores que interoperam, mas cada uma se concentra em fazer um trabalho e fazê-lo bem. Por isso, parece-me natural ter software separado para edição, compilação, controle de origem e depuração. Curiosamente, as IDEs são "integradas", mas você ainda não pode encaixar todas as funcionalidades em uma janela de uma só vez, então você acaba com coisas como perspectivas, onde você está essencialmente alternando entre as diferentes tarefas, embora com alguma sobreposição .

Eu poderia dar a volta e perguntar por que as pessoas toleram a edição dolorosa e não-vim. A melhor maneira que eu posso descrever a sensação de ver alguém editando código dessa maneira é como se sentir quando você fica preso atrás de um carro que passa 10 mph muito devagar porque ele está ao telefone, ou como assistir a um datilógrafo relativamente rápido. . Eles estão indo rápido o suficiente para fazer o trabalho, mas ao mesmo tempo lento o suficiente para ser enlouquecedor.

Muitas pessoas dizem que passam a maior parte do tempo pensando, de modo que editar um pouco mais rápido não faz muita diferença. Nesse caso, a digitação é uma interrupção, e alguns segundos extras de edição podem fazer a diferença entre manter sua linha de pensamento ou ter que recuperá-la. Além disso, se você é um datilógrafo de longa data, sabe que seus dedos digitam palavras comuns sem você sequer pensar conscientemente em quais teclas tocar. Quando você é um usuário de longa data, esse tipo de fluidez vem para coisas como mover linhas e palavras ao redor. No tempo que leva para dizer "excluir" em "excluir essas duas linhas" meus dedos já fizeram isso e minha concentração é completamente ininterrupta.

O Vim também é extremamente personalizável, e seus plugins instalados e o vimrc evoluem conforme seu trabalho evolui. Quando algo começa a atrapalhar, você procura uma maneira melhor de fazer isso e incorpora isso em sua configuração ou nos comandos mais usados. Aprendi vi em 1993 e ainda faço personalizações quando minhas necessidades mudam. Apenas nesta semana eu mudei a conclusão do meu nome de arquivo para trabalhar mais como o bash, porque meu fluxo de trabalho mudou para fazer muito mais do que recentemente e o comportamento padrão estava me dando nos nervos.

Além disso, discordo sobre não valer a pena aprender. Demorou mais para eu aprender a tocar o tipo de letra do que me sentir produtivo no vi, para um aumento similar na velocidade de edição de código, mas você não vê programadores reclamando sobre quanto tempo demorou para aprender a tocar no tipo. E você pode aprender em sua própria velocidade e adicionar novos comandos ao seu repertório à medida que tiver a inclinação. Se você começar com set im no seu vimrc (significa insertmode, mas eu carinhosamente chamo de idiotmode para quando um colega precisa digitar na minha mesa), você pode nem perceber que está usando o vim!

    
por 25.03.2011 / 06:25
fonte
6

Eu uso o Emacs como meu editor principal. Os únicos outros editores que eu considerei seriamente eram o vim e o TextMate. IDEs (e eu tentei alguns incluindo o Eclipse) não tive os recursos que eu precisava.

Na verdade, tive essa conversa com uma colega de trabalho que não faz muito tempo. Ele estava me dizendo o quanto melhor IDE está enquanto usava o mouse para clicar em vários botões e menus. Isso só me fez rir.

Vou experimentar qualquer editor com os seguintes recursos (todos eles críticos para o desenvolvimento).

  • todos os comandos podem ser executados por atalhos de teclado personalizáveis
  • permite edição remota com ssh (sim o Emacs tem edição remota)
  • permite a criação e reutilização rápida de macros
  • linguagem de programação totalmente integrada
  • codifique e execute usando a linguagem de programação em tempo real
  • Integração strong com o GBD e a família
  • sintaxe multilíngue destacada no mesmo buffer
  • autocompletar palavras-chave, variáveis, funções, etc.

Também tenho a tendência de fazer metaprogramação que muitas vezes torna inúteis ferramentas de auto-refatoração; a única área que eu acho que as IDEs tendem a ser boas.

    
por 25.03.2011 / 05:45
fonte
5

Outros editores com uma herança (e controvérsia) igualmente rica foram inventados, e talvez seja apenas uma questão de tempo antes de mudarmos de ferramentas escritas pela primeira vez nos anos 70 (vi / Emacs) para uma da década de 1980 ( Sam ) ou mesmo um dos anos 90 ( Acme ).

"Sam é o editor de texto preferido de muitos eminentes cientistas da computação; ele substituiu ed como Ken Thompson's editor de texto favorito, e ele ainda o usa até hoje. Sam é o editor de texto usado por Bjarne Stroustrup e Brian Kernighan. Outros, como Dennis Ritchie, passaram a usar a Acme. " Aqui está o artigo Sam da Wikipedia.

Mas o que eu sei, ainda estou usando o Vim.

    
por 10.04.2011 / 22:35
fonte
4

Eu sou a única pessoa que ainda usa ed ocasionalmente?

(E para aquelas pessoas que acham que o inchaço do código é relevante ...

$ size /bin/ed 
   text    data     bss     dec     hex filename
  42160    2300       0   44460    adac /bin/ed
$ size /bin/vi
   text    data     bss     dec     hex filename
 692378   27796   13884  734058   b336a /bin/vi
$ size /usr/bin/emacs
   text    data     bss     dec     hex filename
2033257 4692020       0 6725277  669e9d /usr/bin/emacs

Outra vantagem do ed é que você pode executá-lo em um teletipo ... ou o mais burro dos terminais burros.

    
por 05.04.2011 / 07:48
fonte
2

"Melhor" é uma palavra subjetiva. Se eu sou feliz e produtivo usando um editor de texto, quem é X ou Y ou Z para dizer "largar e usar outra coisa"? Se é uma política corporativa ou tal que faz com que seja impossível, mas não temos escolha.

    
por 25.03.2011 / 07:32
fonte
2

Eu suponho que sou um pato estranho, mas na verdade eu uso editores diferentes, dependendo da situação.

Vim :

Quando estou conectado (ssh'd) em um servidor distante (por exemplo, observando os logs) e quero editar rapidamente um arquivo e fazer alguns ajustes. Muito mais rápido do que navegar para a mesma pasta (hospedado pela SAN) na minha área de trabalho local.

Notepad ++ :

Sobre a mesma situação: para uma edição rápida, mas desta vez quando não quero esperar que o Eclipse (IDE corporativo) seja carregado.

Eclipse :

É a IDE corporativa onde trabalho. Temos alguns plug-ins internos para poder iniciar a compilação diretamente do Eclipse em uma máquina remota ... e, mais importante, um plug-in para localizar as bibliotecas produzidas por outras equipes e com as quais estamos trabalhando (e replicar os cabeçalhos em local para indexação rápida). Desde que eu estou falando um bom milhares de bibliotecas ... é realmente útil;)

OpenGrok / Doxygen :

Mais código de navegação do que edição adequada, mas ainda muito útil! Meu navegador está configurado para navegar, por isso é bem utilizado aqui.

Como conclusão: eu costumo usar qualquer editor que me permita realizar a tarefa com relativa facilidade e velocidade decente.

    
por 25.03.2011 / 20:26
fonte
1

Eu prefiro comer minhas próprias mãos do que usar qualquer uma delas. Eu amei o Visual Studio quando estava fazendo C ++. Eclipse é meh. IntelliJ IDEA é excelente. Eu costumava amar também o JBuilder , mas eu não o uso há anos.

    
por 10.04.2011 / 22:46
fonte
0

Às vezes, estarei trabalhando em sistemas praticamente nus, onde o único editor instalado é o vi. Para casos como esses, ajuda muito saber pelo menos os comandos básicos do vi.

O vi e o emacs também são muito extensíveis, tanto que, na verdade, eles podem ser IDEs de pleno funcionamento com a quantidade certa de plug-ins. Para mim, posso editar arquivos muito mais rápido no vi, já que não preciso tirar minhas mãos do teclado para mover um mouse. Ele também tem recursos que eu não vi em alguns IDEs (embora eu admito que não tenha olhado muito), como poder editar colunas de texto, armazenar várias palavras "cortadas" em vários buffers para colar, etc.

Os editores levam algum tempo para aprender, mas também são realmente poderosos. E sim, eles não são para todos.

Uma interessante leitura relacionada é Por que devo usar um IDE?

    
por 23.05.2017 / 14:40
fonte
0

Eu mantenho o vi porque foi o primeiro editor que aprendi na escola e é o que eu tenho mais produtivo hoje. Eu trabalho com um monte de variantes unix e está disponível em todos eles (e funciona da mesma maneira, independentemente do ambiente). Faz o que eu preciso fazer, então por que mudar para mudar.

Eu uso um IDE para o meu trabalho em java (agora Intellij Idea), mas passo muito do meu tempo usando o vi.

    
por 25.03.2011 / 05:04
fonte
0

Existem alternativas melhores? No outro dia eu tive uma lista de nomes de esquemas que eu tive que encurtar (obrigado, Oracle!). Pelo menos metade deles terminou com a palavra "Teste". Eu decidi largar o "Teste" do final e prefixo o nome com "T". No vi, essa era uma simples pesquisa e substituição de regex, existem editores recentes que podem fazer isso?

    
por 25.03.2011 / 14:42
fonte
-1

Neste exato momento, estou me encontrando trabalhando na metade do tempo, de todas as coisas, nano , simplesmente porque é a ferramenta que se encaixa no trabalho - editando pequenos scripts na linha de comando sobre o ssh. Usar o Eclipse para isso seria como um garçom usando um processador de alimentos fatia-dado-pique-e-misture turbo-powered estilo infomercial para moer pimenta sobre a minha salada.

    
por 10.04.2011 / 22:48
fonte