Um programador deve aprender editores de texto como Emacs e Vim? Quão importante eles são? [duplicado]

43

Eu tenho escrito código até agora em editores de texto convencionais que vêm com o sistema operacional até agora ou usam um IDE em alguns casos. Eu sei que existem alguns editores de texto avançados como Emacs e Vim disponíveis apenas para o propósito de codificadores. Quão importante eles são realmente? Um programador que lida com PHP , Python etc. deve aprender esses editores? Quais são as vantagens que eles oferecem sobre editores convencionais como Notepad++ , Scribes etc??

    
por David Halter 17.04.2011 / 17:26
fonte

12 respostas

30

O Vim é uma ferramenta muito boa quando você se familiariza com ele.

Ele é iniciado mais rápido do que qualquer IDE ou editor de texto que eu usei, e tem realce de sintaxe e recua o código corretamente na maioria dos casos.

Ele também ajuda você a se concentrar no processo de codificação em si, você não estará usando o mouse para lidar com isso, o que economizará muito tempo quando você estiver apenas escrevendo código.

Ele também tem muitos plugins para o que você está fazendo.

Eu não usei emacs para ser honesto, mas tenho certeza de que há pessoas aqui que gostam disso, eu pessoalmente não gosto de ter que pressionar Ctrl ou Alt o tempo todo.

Editar

A utilidade do Vim também depende do que você está escrevendo.

Se você é um desenvolvedor de APIs (Java, C # ... etc), provavelmente ficará mais à vontade com um IDE.

Mas se você escreve scripts (Bash, Perl ... etc), o Vim pode ser o caminho a seguir, já que você precisa escrever algo rápido, o Vim é rápido e faz tudo que você precisa.

    
por 17.04.2011 / 17:35
fonte
47

Um programador não deve necessariamente aprender muitas ferramentas, mas aprender algumas e aprendê-las bem.

O Emacs e o vim têm suas forças distintas, mas, a menos que você os use regularmente, você não se beneficiará bastante deles, eu acho. Especialmente se você é um programador de aprendizado.

Você irá , no entanto, beneficiar de um IDE bom, mas você também deve ser capaz de fazer um trabalho real apenas com um editor simples e simples.

    
por 17.04.2011 / 17:36
fonte
16

A importância de vi é que você sempre encontrará sempre em qualquer sabor do UNIX (padrão nos sabores SysV e BSD) ou sistema semelhante ao UNIX. Note, no entanto, que pode ser original vi , não vim . Não é garantido que você tenha outro editor instalado. Também no Linux está em /bin , então está disponível mesmo se /usr falhar na montagem.

    
por 17.04.2011 / 19:30
fonte
15

Você é um digitador de toque rápido? Você costuma desejar mais atalhos de teclado para fazer edições? O tempo que você gasta editando interrompe sua linha de pensamento? Você acha pequenas coisas sobre o seu editor que você gostaria de personalizar para funcionar do jeito que você gosta? Você não se importa gastar muito esforço na frente se isso significa que você vai economizar mais tempo e esforço a longo prazo? Você está incomodado por pessoas que consideram você anacrônico? Se sim, então vim pode ser uma boa opção para você.

Você prefere descobrir seu editor sem ler o manual, mesmo que isso signifique menos recursos? Você está mais confortável usando o que todo mundo no escritório está usando? Você usa o mouse para tudo? Se sim, então o vim pode não ser uma boa opção para você.

    
por 18.04.2011 / 05:39
fonte
6

Eu acho que aprender Emacs (e provavelmente o Vim também) é muito útil. Por quê? Simples: eu posso usar o mesmo editor excepcionalmente capaz para mais ou menos tudo que eu faço.

Isso é ótimo porque eu sou um estudante, constantemente aprendendo a usar coisas novas e brilhantes. Este ano, eu brinquei com o Haskell, fiz uma tonelada de JavaScript, usei o Scheme, escrevi um pouco de Java, trepei com o Perl, trabalhei em um site ... O Emacs foi ótimo para tudo isso.

No passado, eu tive alguns problemas com diferentes linguagens: eu pegava Perl ou Python, mas não conseguia encontrar um bom editor para nenhum dos dois. Agora eu sei que posso sempre usar o Emacs. É claro que às vezes o Emacs não tem todos os recursos que eu quero, mas sempre tem recursos suficientes para usar em projetos rápidos. Para projetos mais longos, pode ser necessário alguma customização, mas o tempo necessário para isso é provavelmente igual a obter e aprender um novo IDE.

Em suma: Emacs é ótimo porque suporta tantas linguagens diferentes, e é poderoso o suficiente mesmo sem suporte para uma linguagem específica para tornar a vida muito melhor.

    
por 18.04.2011 / 09:54
fonte
5

Não

Se você quiser aprender como usá-los, não faça isso em um ambiente de produção. Faça isso em seu tempo de inatividade ou tempo reservado especificamente para se acostumar a escrever código neles. Quando você tiver mais experiência, apresente-a ao seu ambiente, mas mantenha o programa ao qual está acostumado. Eu mantive o frontpage por perto quando decidi transferir para um editor de texto puro, até que fiquei confiante o bastante para não precisar mais dele.

    
por 18.04.2011 / 08:38
fonte
5

Existem pelo menos três razões pelas quais um programador recém-formado pode optar por passar algum tempo aprendendo o emacs e vi:

  • tradition: Tanto o vi quanto o emacs existem desde que Moses pegou sua saída em tablets de pedra. De fato, o próprio Deus pode ter inventado ou vi ou emacs, e o diabo o outro, mas você obterá respostas diferentes sobre quem inventou o que depende de quem você pergunta. (Você já ouviu falar que é um argumento religioso , certo?) De qualquer forma, esses dois editores permitiram um pouco de história, e histórias e brincadeiras envolvendo-os são abundantes. Você pode se sentir incapaz de entender suas raízes sem algum conhecimento de ambos. Por exemplo:

    How many vi users does it take to change a lightbulb?

    ne, as long as he doesn’t forget to enter ‘insert’ mode first.*

  • inércia: Existem muitas pessoas por aí que têm emacs e / ou vi keystrokes gravadas em seus neurônios como a pontuação mais alta em uma máquina Defender. Eu não acho que alguém iria segurar qualquer editor como um exemplo brilhante de design de interface de usuário moderno, mas desde que muitas pessoas já conhecem os comandos, os editores mais novos geralmente criam suporte para comandos vi e / ou emacs. MacOS X é talvez o melhor exemplo disso: você pode use um número surpreendente de comandos emacs comuns em qualquer aplicativo baseado em Cocoa (a menos que você seja uma dessas pessoas e instala um gerenciador de entrada baseado em vi ). Muitos IDEs e editores de texto em todas as principais plataformas oferecem ligações de chave para vi e / ou emacs e, provavelmente, por um longo tempo no futuro. Então, assim como você aprendeu a digitar em um teclado QWERTY, você provavelmente também vai pegar alguns comandos derivados de um antigo editor de texto, quer você saiba disso ou não.

  • power: Não tenho tanta certeza sobre o vi, mas é seguro dizer que há muito poucos editores que se aproximem do poder e da flexibilidade disponíveis no emacs. Não gosta do jeito que algo funciona? Você pode mudar isso. Não tem vontade de desistir do seu editor para usar a linha de comando? Não tem problema - você pode fazer tudo que precisa dentro do emacs. Você precisará gastar muito tempo estudando nos pântanos de Dagobah para aprender a explorar todo esse poder, mas algumas pessoas podem achar que vale a pena, talvez até por si só. O vi é mais como uma ferramenta Leatherman pendurada no seu cinto: versátil, sempre pronta e utilizável para todos os tipos de coisas.

Agora, então, é importante aprender vi e / ou emacs? Eu diria que é útil saber algo sobre os dois, especialmente para que você conheça pelo menos um pouco se você precisar usá-los (você pode). Mas não conhecê-los não necessariamente irá atrasá-lo. É muito mais importante saber como usar as ferramentas que você usa diariamente da forma mais eficaz possível.

* Isso não é um erro de digitação - você vai conseguir depois de passar sua primeira hora com o vi.

    
por 19.07.2012 / 05:09
fonte
3

Se você precisa aprender um editor para programação, crie o emacs. Por quê?

Se eu precisar fazer um rpm e eu abrir o emacs, e dizer para encontrar um arquivo que acabe com a extensão .spec WHAM! Um arquivo de esqueleto aparece com todas as tags e macros já preenchidas com o texto codificado por cores.

E se eu quiser enviar para o meu controle de versão favorito, esc-x load-library O mercurial (ou git ou svn) coloca o emacs no clima para baixar os comandos certos do seu menu de controle de versão ou para reconhecer os comandos como ctrl-x vv para fazer check in ou out de um repositório, e para fazer tudo o que se pode fazer com um repositório.

A fadiga óptica ocorre quando alguém olha para as mesmas cores por muito tempo. Eu uso o konsole para janelas de terminal e mudo as cores com frequência. Com o emacs não em uma janela de terminal, eu tenho mais de 50 temas de cores para escolher, alguns deles com contraste confortavelmente baixo, como Alice Blue, e alguns pontos como euforia para quando eu preciso ficar acordado.

Codifico muito python. Quando preciso testar algum código para sintaxe, não deixo o emacs. Eu inicio o interpretador Python, e a tela se divide, então eu salvo meu arquivo python e importo para o intérprete para verificar a sintaxe - um erro será prontamente aparente, e eu posso consertá-lo imediatamente. Quando tiver terminado, posso mudar para uma janela de divisão e continuar o trabalho.

Algumas pessoas dizem que usam o vi, e eu o uso em alguns sistemas mais antigos do SUN ... Eu tenho um ritmo regular - clico em i e insiro um caractere, em seguida, bato escape e bato novamente ... (pouco melhor que ed, mas é o que está disponível).

Normalmente, minha primeira instalação em qualquer novo sistema é zile. O GNU Zile é emacs sem todas as janelas, como navegação e e-mail e irc e cores, apenas um binário codificado em C que funciona em cerca de 100k e usa códigos de teclas do emacs.

Se os emacs fossem tão onerosos quanto a maioria tenta fazer soar, deve ser surpreendente que tantos folk fossem glutões de autoflagelação ao fazerem editores do tipo emacs. O MINCE não é completo O Emacs, os 31 sabores de micro-emacs, Jed, Zile, Joe e um código python oddball, ou dois YMacs baseados na web, são todos emacsen. O peppy link é um take diferente, usando códigos de códigos emacs e codificados em Python e será editado em quase tudo, incluindo pedaços de dados binários, e Ele tem dezenas de modos para linguagens de programação, mas seu paradigma de codificação é o emacsen.

YEah, emacs vale a pena aprender, e assim é vi. Do resto, talvez o Eclipse seja tão útil, se você conseguir suportar o hoggy das suas muitas inserções. E se você precisar de algo REALMENTE pequeno, leve e rápido, confira o e3. A versão x86 é escrita em assembler e serve muitos conjuntos de códigos de chaves, incluindo Emacs e Vi. link

E, ah, sim, abro o emacs, digito 17 páginas e BLAP! Relâmpagos e meu poder se apagam. Quando a energia é restaurada, eu olho para o trabalho e descubro que perdi os últimos 7 caracteres que eu digitei. E se eu decidir seguir o procedimento "recuperar sessão quebrada", posso reduzi-lo para 2 perdido.

O código Python não acredita em recuo, DEPENDE deles. O Emacs está ciente disso e garante que seu recuo seja adequado. Mas se você decidir remover um "if", você terá uma região inteira com o status de recuo errado. Com o emacs você conserta isso por:

ctrl-space e teclas de seta para realçar a região

ctrl-c < para outdent todo o código destacado. (ctrl-c > recua de novo, corretamente).

Eu acho que usei mais de 60 editores, e ainda o que eu volto é o emacs, não porque eu possa obter stubs de código de função em C ou recuo adequado ou código de cores, mas porque eu posso personalizá-lo além de seu capacidades já impressionantes. A ideia de Richard Stallman foi adaptada por muitos ...

    
por 18.07.2012 / 23:02
fonte
3

Atualmente, a popularidade de vários tipos de adoração de editores provavelmente vem do livro Programador pragmático

ou, para ser mais exato, de leitores que se abarrotam de forma inconsciente Capítulo 3 Ferramentas básicas - > Edição de energia - > Um editor , mas perdeu totalmente a chave (pragmática!) Takeaway apresentada no capítulo Prefácio:

There are no easy answers. There is no such thing as a best solution, be it a tool, a language, or an operating system. There can only be systems that are more appropriate in a particular set of circumstances.

This is where pragmatism comes in. You shouldn't be wedded to any particular technology, but have a broad enough background and experience base to allow you to choose good solutions in particular situations...

You adjust your approach to suit the current circumstances and environment. You judge the relative importance of all the factors affecting a project and use your experience to produce appropriate solutions. And you do this continuously as the work progresses.

Se alguém obtém o entendimento geral como acima, isso por si só torna o livro digno de leitura. A ideia principal a ter em mente é aquela que os autores afirmaram de forma clara e inequívoca, "não existe melhor solução" .

    
por 19.07.2012 / 03:09
fonte
2

Nem emacs nem vi são apenas para codificação; Eles apenas suportam recursos que facilitam a escrita de código.

A única virtude de vi é sua onipresença; qualquer sistema baseado em Unix ou Linux terá uma implementação do vi. São anos-luz mais amigáveis do que o TECO , mas usam um Etch-a-Sketch. Dito isso, o vi é minha principal ferramenta de edição em uma sessão de terminal, simplesmente porque eu nunca tive a largura de banda para aprender e emacs ao mesmo tempo (e o emacs também danificou muitas combinações de códigos de tecla).

Você não precisa para aprender qualquer ferramenta; existem outros editores de texto de qualidade que suportam muitos dos mesmos recursos em um formato mais amigável.

    
por 18.04.2011 / 02:35
fonte
1

Você não precisa aprender Vi ou Emacs, você precisa aprender suas ferramentas. Imagine um atirador que não conhece bem as desvantagens e capacidades do seu rifle, ele não seria um bom atirador? Será que ele?

Então vá em frente e encontre um editor que você goste, você pode gostar do Emacs, Vim, Textmate, Sublime Text ... porra, talvez você não goste de nenhum deles e você está OK com o Nano, mas o que importa é que você está confortável com suas ferramentas.

    
por 19.07.2012 / 03:08
fonte
-5

Primeiras coisas primeiro. O VIM é mais produtivo para programação do que o Eclipse ou. Sua produtividade pessoal no VIM pode ser péssima, mas o limite potencial do VIM é muito maior. Isso é um fato.

VIM é uma arte marcial. Parece antinatural quando você o usa pela primeira vez. E você nem consegue fazer funcionar. Leva anos de prática para se tornar gradualmente produtivo. Você se concentra em dominar um pequeno detalhe no começo. Lentamente, todos esses bits que você dominar somam até que o texto esteja fluindo sem esforço para fora das pontas dos seus dedos na tela. Edições complicadas que fariam seu suspiro de colega de trabalho pular de suas mãos antes que ele pudesse terminar sua expiração. Existem poucas pessoas que podem usar o VIM. Menos quem pode usá-lo produtivamente. E você pode nunca conhecer um mestre em sua vida. Mas há boatos de que existem.

O VIM é projetado para manter as mãos na linha inicial. Mover sua mão do teclado para o mouse é desmoralizante. É um movimento motor bruto. Mover seu braço tem um efeito psicológico que prejudica sua motivação. Usando VIM, alguém poderia trancar seus pulsos no teclado e você ainda poderia facilmente abrir arquivos, dividir janelas, abrir abas, construir o projeto, procurar / substituir, mudar fontes, mudar cores, etc. E tudo na velocidade da luz.

VIM é modal. Isso significa que você não precisa fazer combinações de teclas complexas nas quais mantenha pressionado o controle + shift + Key. Isso machuca suas mãos a longo prazo. Em vez disso você executa comandos. Não há necessidade de combos chave devido à natureza modal.

Armazenamos dados em nossa memória como os computadores fazem. Nossa memória só pode conter alguns valores por vez. Veja quantos números inteiros distintos você pode ter em sua cabeça antes que eles comecem a desaparecer. Nós superamos essa limitação humana escrevendo coisas. Se os dados caírem fora de nossa memória, poderemos ver facilmente o que escrevemos para recuperá-los. Se o seu tempo é gasto fazendo coisas físicas, você está perdendo tempo que poderia ter sido gasto no processamento de dados em seu cérebro. Você quer que sua mente flua na tela sem nenhum esforço. Pode não parecer muito, mas a capacidade do VIM de transferir sem esforço o que está na sua mente para a tela é um grande aumento de produtividade. É difícil colocar em palavras o que estou tentando dizer.

O VIM suporta o preenchimento de código. Ambos textual e look-up. Pode puxar texto de arquivos de mulitple. Qualquer coisa que você desejar pode ser obtida no VIM. Faça você mesmo ou use algo que alguém inventou.

O VIM suporta o uso de definições com ctags. Você também pode encontrar todas as referências de um item. Mais uma vez, qualquer coisa que você desejar pode ser obtida no VIM.

O script do VIM é enorme. Você pode baixar ou criar milhares de esquemas de cores e alterar as cores em um instante. Tente alterar fontes ou cores no Microsoft Visual Studio e ele irá travar por 20 segundos enquanto ele carrega dados. Ele não permite armazenar esquemas de cores e você deve gastar 30 minutos aprimorando suas cores e fontes toda vez que quiser mudar de cenário. No VIM, você pode definir o espaçamento entre linhas como zero para ajustar mais linhas de código na tela. Eu recebo mais de 80 linhas. O Visual Studio usa 2 pixels de espaçamento para cada linha e você não pode ajustá-lo !!! Menos linhas = mais rolagem = menor produtividade = forçada a usar fontes pequenas para mais linhas = cansaço visual.

As janelas divididas são abertas em um instnat no VIM. É útil quando você precisa examinar dados em uma seção do código que esteja longe do local em que você está digitando (ou em um arquivo diferente). Você não precisa perder tempo redimensionando janelas ou se preocupar com janelas de interface gráfica sobrepostas umas às outras e ficando atrás umas das outras. Janelas de código não relacionadas podem ser abertas em abas para não ocupar espaço na tela, mas permitir troca rápida.

VIM como um IDE: link

VIM a vingança: link

    
por 19.07.2012 / 02:46
fonte