Quais são os prós e os contras do Vim e do Emacs?

372

Como você compararia esses editores? Quais são os prós e os contras de cada um?

[ nota ] Isso não deve ser respondido por quem "odeia um e ama outro" ou por quem não usou os dois.

John Berryman
fonte
1
M-! emacs RETÉ como pesquisar no google por "google"
Seamus
11
Duplicado da pergunta SO: stackoverflow.com/questions/1430164/… do ubuntu askubuntu.com/questions/804/… e programadores programmers.stackexchange.com/questions/1271/… Tem que amar a proliferação aqui.
Trey Jackson
27
Estou surpreso que ninguém tenha mencionado o XKCD 378 .
tedder42
9
Observe como essas perguntas nunca se incomodam em fazer uma comparação com Ed, o verdadeiro editor do WYGIWYG!
Mark K Cowan
4
@ tedder42 Em seguida, assim como você pode afirmar "Mel" ...
Tobias KIENZLER

Respostas:

420

Eu uso os dois, embora se eu tivesse que escolher um, eu sei qual escolheria. Ainda assim, tentarei fazer uma comparação objetiva em algumas questões.

  • Disponível em qualquer lugar? Se você é um administrador de sistema profissional que trabalha com sistemas Unix ou um usuário avançado em dispositivos incorporados (roteadores, smartphones com Busybox,…), precisa conhecer o vi (não o Vim), porque está disponível em todos os sistemas Unix e na maioria dos sistemas. Sistemas tipo Unix, seja desktop, servidor ou incorporado. Para um usuário comum, esse argumento é irrelevante: o Emacs está facilmente disponível para todos os sistemas operacionais de desktop / servidor e, como suporta edição remota, basta colocá-lo na máquina de qualquer maneira.

  • Inchado? O Emacs já representou humoristicamente "Oito Megabytes E Trocando Constantemente". No momento, na minha máquina, o Google Chrome precisa de tanta RAM por guia quanto o Emacs para 100 arquivos abertos, e eu nem vou mencionar o Firefox. No século 21, o inchaço do Emacs é apenas um mito.

    O inchaço dos recursos também não é um problema. Se você não o usa, não precisa saber que está lá. Os recursos do Emacs ficam fora do caminho quando você não os utiliza e a documentação é muito bem organizada.

  • Tempo de inicialização : Vi (m) proponentes reclamam do tempo de inicialização do Emacs. Sim, o Emacs é lento para iniciar, mas isso não é grande coisa: você inicia o Emacs uma vez por sessão e depois se conecta ao processo em execução emacsclient. Portanto, a inicialização lenta do Emacs é principalmente um mito.

    Há uma exceção: quando você faz login em uma máquina remota e deseja editar um arquivo lá. Iniciar um Emacs remoto é (geralmente) mais lento do que iniciar um Vim remoto. Em algumas situações, você pode manter um Emacs rodando dentro do Screen. Você também pode editar arquivos remotos no Emacs, mas isso interrompe o fluxo se você estiver em uma sessão ssh em um terminal. (Desde o XEmacs 21 ou GNU Emacs 23, você pode abrir uma janela do Emacs a partir de uma instância do X em execução dentro de um terminal.)

    Ao virar a mesa, observei o Vim demorar muito mais para carregar do que o Emacs ( vim -u /dev/nullvs. emacs -q). É certo que isso estava em uma plataforma estranha (Cygwin).

  • Curva de aprendizado inicial: isso varia de pessoa para pessoa. O gráfico de Michael Mrozek me fez rir. Sério, eu concordo que a curva de aprendizado do Vim começa mais íngreme do que qualquer outro editor, embora isso possa ser diminuído usando o gvim.

    Desde que eu dissipei alguns mitos do Emacs, deixe-me dissipar um mito do vi: um editor modal não é difícil ou doloroso de usar. É preciso um pouco de hábito, mas depois de um tempo parece muito natural. Se eu fosse redesenhar o vi (m), definitivamente manteria os modos.

  • Curva de aprendizado assintótico: o Vim e o Emacs têm muitos recursos, e você continuará descobrindo novos após anos de uso.

  • Produtividade : este é um tópico extremamente difícil. Os defensores do vi (m) argumentam que você pode fazer praticamente tudo sem sair da linha de base, e isso o torna mais eficiente quando você mais precisa. Os defensores do Emacs replicam que o Emacs tem muitos comandos que não são usados ​​com freqüência, portanto, não justifique uma ligação de chave, mas é conveniente quando você precisar deles ( referência obrigatória xkcd ).
    Minha opinião pessoal é que o Emacs vence, a menos que você tenha uma deficiência de digitação (e mesmo assim você pode configurar o Emacs para exigir apenas sequências de teclas e não combinações como Ctrl+ letra). As teclas de linha em casa são legais, mas geralmente não são uma vitória tão grande porque você precisa mudar de modo. Eu não acho que exista algo que o Vim possa fazer significativamente com mais eficiência do que o Emacs, enquanto o inverso é verdadeiro.

  • Personalização : os dois editores são programáveis ​​e há um extenso corpo de pacotes disponíveis para ambos. No entanto, o Vim é um editor com uma linguagem de macro; O Emacs é um editor escrito em Lisp com algumas primitivas ad-hoc. O Emacs vence espetacularmente quando você tenta fazer algo que os autores simplesmente não pensaram. Isso não acontece todos os dias, mas se acumula ao longo dos anos.

  • Mais que um editor : o Vim é um editor. O Emacs não é apenas um editor: é também um IDE, um gerenciador de arquivos, um emulador de terminal, um navegador da Web, um cliente de email, um cliente de notícias, ... Se isso é bom ou ruim, é motivo de debate. Mas você pode usar o Emacs como um mero editor (veja “inchaço dos recursos” acima).

  • Como um IDE : o Vim e o Emacs têm suporte para muitas linguagens de programação e outros formatos de texto. Além do básico, como coloração sintática e recuo automático, ambos possuem recursos avançados de IDE, como pesquisas de referência cruzada de código e documentação, inserções e refatorações assistidas, controle de versão integrado e a capacidade de iniciar uma compilação e pular para o primeiro erro.

    Um domínio em que o Emacs é melhor que o Vim é a interação com subprocessos assíncronos . É quando você inicia uma compilação longa e deseja fazer outra coisa dentro da mesma instância do editor enquanto o compilador está agitando. Ou quando você deseja interagir com um loop Read-eval-print - o Emacs realmente brilha com isso, o Vim só tem hacks desajeitados para oferecer. No entanto, um novo fork do vim, o Neovim provou ter corrigido isso e implementado várias outras correções de bugs não implementadas no stock vim.

Gilles
fonte
34
Não posso concordar com o ponto "Mais que um editor". O Vim também possui muitos plugins, incluindo aqueles que o transformam em um gerenciador de arquivos ou em um IDE (como o vim-latex).
rozcietrzewiacz 29/07
7
Isso me fez sentir pequeno ...
gnometorule
10
@rozcietrzewiacz: Sim, mas você pode navegar na Web no Vim? Ler e-mail? Verifique seu feed RSS? Não acho que você possa negar que o Emacs é simplesmente mais poderoso, embora a utilidade desse poder dependa do que você está procurando.
musicfreak
3
O @Bananguin Emacs é melhor em qualquer coisa que envolva interagir com um REPL . Por exemplo, Prova geral é muito boa (é claro que é um domínio de aplicativo muito restrito). O Emacs é bom em fazer coisas que ninguém pensava antes: o Emacs Lisp é muito melhor do que a linguagem macro do Vim. O Emacs tende a ter melhor suporte para recuar o código-fonte, mas não acho que seja tanto uma falha do Vim quanto uma falta de bibliotecas (o suporte ao Vim tende a ser limitado ao realce da sintaxe).
Gilles
5
@ MichaelHampton Você deve ser jovem então. Em 1985, eram oito megabytes . A essa altura, suponho que deva ter oito mil megabytes, exceto que ninguém percebe o uso da memória do Emacs, já que é menos de uma guia do navegador.
Gilles
267

Vou postar o que acho que são os principais benefícios de cada um:


O Emacs possui consideravelmente mais extensões para permitir que você execute tarefas que são apenas vagamente relacionadas ao editor de texto, como navegar no sistema de arquivos ou mexer com o controle de versão, e extensões que não são de forma alguma relacionadas ao editor de texto, como ler feeds RSS. Se você deseja um ambiente em vez de apenas um editor de texto, o Emacs será melhor que o Vim. Eu também acho que o Emacs é muito mais fácil de aprender, apesar do que alguns querem que você acredite:

Editor de curva de aprendizagem em quadrinhos

Em particular, acho que um usuário iniciante do Emacs será mais rápido que um usuário iniciante do Vim


Por outro lado, o Vim é inegavelmente mais rápido. Parece que essa é uma parte essencial do argumento, mas, na minha opinião, não há contestação; Eu me considero um usuário fluente do Emacs e não sou páreo para as duas pessoas que conheço que têm o mesmo conhecimento do Vim. O problema é que o número de pessoas que têm domínio suficiente do Vim para ser tão rápido é incrivelmente pequeno (das ~ 30 pessoas com quem converso regularmente que usam o Vim, acho que apenas uma é excepcionalmente boa nisso). Há uma grande lacuna entre o possível ganho de velocidade e o ganho real de velocidade que você obtém; Os usuários do Emacs serão quase tão rápidos quanto 99% dos usuários do Vim e (como eu disse na seção Emacs) os usuários iniciantes do Emacs provavelmente serão mais rápidos do que os usuários iniciantes do Vim

Michael Mrozek
fonte
8
umm ... Eu sei que o vim tem mais de um plugin de controle de versão. e um desses plugins suporta todos os sistemas populares ... se o emacs tiver mais ... quantos deles você precisa para fazer a mesma coisa?
Xenoterracide
13
@xeno Eu não sei o que o plugins vim tem, então talvez o VCS tenha sido um exemplo ruim, mas estou muito confiante que o Emacs tem muito mais plugins que o vim, porque o vim não se inscreve na filosofia de "um programa fazendo tudo"
Michael Mrozek
4
Alguém poderia explicar o que significa o emacs graph, dado acima? Como interpretar isso?
Andrew-Dufresne
27
É uma piada "no fundo da toca do coelho" ... É porque quando você aprende emacs, eventualmente você começa a criar o emacs também. (desde Emacs é realmente apenas uma coleção muito grande de edição de macros / rotinas escritas em que é intérprete Lisp.)
ocodo
15
Marque com +1 a sua velocidade versus experiência é boa, mas talvez 99% seja um pouco extremo. Quero dizer vim não é "que" difícil de dominar, ele só tem um par de anos;)
Johan
81

Existe um vidisponível em todos os sistemas unix (ou quase), no entanto, você não pode dizer isso sobre nenhum outro editor. Este é o motivo número 1 para aprender e se familiarizar vi(observe 'vi' e não 'vim'). Nunca vi o Emacs disponível em uma instalação padrão.

Não estou dizendo que não use o Emacs ou esse é o único motivo para usar o Vim, mas quando você quiser usar sistemas Unix que não são seus ... vifaz parte da linguagem universal.

xenoterracida
fonte
1
Eu sou completamente um vimusuário, mas muitas vezes eu achar que é difícil de usar vi, muito provavelmente por causa da tecla END (vim suporta-lo, mas vi não, ou pelo menos não faz por padrão)
phunehehe
25
@phunehehe se eu tentar usar, nanoacabo com um monte de ijkloOah's no meu arquivo ... até perceber que não posso usá-los para navegação. Não uso as setas do teclado para navegar.
Xenoterracide
5
Isso vale duas vezes para conectar-se a servidores lentos em conexões desonestas: o único editor que eles garantem (é na especificação do Unix, eu acho?) É vi, e o modo de comando do vi facilita muito a edição de arquivos com menos pressionamentos de tecla quando cada pressionamento de tecla leva alguns segundos para aparecer na tela. Claro, passo # 1 é geralmente instalar vim:)
Gaurav
12
@phunehehe Eu não uso esc. Eu uso ctrl + [ele faz a mesma coisa;)
xenoterracide
8
+1 no comentário de Gaurav. O Vi funciona excelente para edição de emergência de arquivos de configuração em uma conexão 3G ruim em um telefone celular lento.
LawrenceC
23

Eu acho que os dois são incríveis. Acho que qualquer um pode fazer praticamente qualquer coisa que você possa imaginar, e ambos são tão personalizáveis ​​que, quando você termina de personalizá-los, ambos são exatamente o que você quer que sejam, nada mais nem menos.

O Emacs me destaca por estar um pouco mais próximo (embora ainda não atenda) dos padrões ISO / IEC de usabilidade e consistência para interfaces de usuário e, portanto, não joga tantos truques com seus "instintos" sobre o que o vim faz. A vida útil dos instintos que você desenvolveu trabalhando com outros programas não funcionará contra você.

O Vim é um modelo completamente diferente e, em muitos aspectos, é superior por si só, na medida em que se baseia muito menos nas seqüências Cntrl / Alt e, em vez disso, apenas em seus modos, permitindo que você mantenha seus esforços na linha de casa e digitando Mais rápido. Mas o vim é praticamente único e, a menos que você instale algum software de acompanhamento muito incomum (por exemplo, Vimperator, Jumanji / Zathura etc.), os instintos que você desenvolve trabalhando com o vim não serão transferidos para outros programas e vice-versa. Dito isto, eu mesmo decidi vim. Você precisa escolher um mais cedo ou mais tarde, para melhor ou para pior, pois é difícil dominar as duas coisas.

frabjous
fonte
1
Um comentário sobre a linha "os instintos que você desenvolve trabalhando com o vim não passa para outros programas": A linha "definir modo de edição vi" pode ser adicionada a um arquivo ~ / .inputrc (no sistema Linux que o suporta) . Isso ativa a sintaxe no estilo vi para inserir texto em programas usando o readline for stdin, como o próprio shell bash. Pode haver (às vezes surpreendentemente) uma quantidade razoável de aplicabilidade mais ampla aos instintos de edição que se desenvolve usando o vim.
Christian Abbott
Felizmente, existem muitas pessoas com esse problema e elas criaram extensões para muitos programas para torná-las mais parecidas com vim .
DarkWiiPlayer
21

Eu uso os dois regularmente. Eu vejo o Emacs como um editor "live in", enquanto eu uso o Vim para tarefas rápidas e únicas. Superficialmente, o Emacs é muito mais inchado do que o Vim e, portanto, não é tão conveniente "inicializar" quanto o Vim, mas também acho que as filosofias da interface do usuário de um para o outro apóiam esse paradigma. O Emacs é muito mais construído para mantê-lo por dentro, tornando as coisas agradáveis ​​e confortáveis ​​para que você não precise sair, enquanto o vim é muito mais "Unixy" e se vê como parte de um cinto de ferramentas maior.

Muitas pessoas fogem do Emacs devido à sua forte dependência de bucky bits , mas essa é uma razão bastante tola para mim. O poder real que o Emacs tem sobre o Vim é a personalização e, com o poder do Viper etc., isso realmente não é um problema. Certamente, o Vim-Script fornece seu próprio nível de personalização e, se, por exemplo, sua linguagem de programação favorita não receber um marcador de sintaxe apropriado, você certamente poderá preparar uma, mas o Emacs é, em última análise, uma máquina de cisco auto-hospedada e, em particular, no final, você pode fazer muito, muito mais, brincar com isso. Simplesmente não existem ferramentas como gnus ou org-mode no Vim, para citar algumas. Em poucas palavras, o Emacs não é apenas um editor, é praticamente um maldito sistema operacional.

Para manipular o texto, eu diria que eles são exatamente iguais.

Eli Frey
fonte
30
"O Emacs seria um ótimo sistema operacional, se tivesse um editor de texto que valha uma merda." - Lembrei-me desta citação.
Amphetamachine
@ amphetamachine Não recebo a cotação. Significa humilhar o emacs-the-text-editor?
tshepang
Significa, embora eu costumo ouvi-lo mais de maneira mordaz.
Cody Poll
Quanto aos próprios editores, acho o vim mais fácil de editar texto, mas tenho que entregar a personalização ao emacs. O Vimscript simplesmente não suporta um cisco.
Cody Poll
19

Vou colocar meu valor de US $ 0,02, pois passei alguns anos usando o emacs e o XEmacs e depois fui para o vim. Para ser justo, eu realmente usei o vi por volta de 1990-1992, por isso estava familiarizado com a interface do usuário.

Emacs

  • O Emacs foi descrito como um sistema lisp que acabou de ser usado para escrever um editor, e há um certo grau de verdade nisso. Você pode implementar praticamente qualquer coisa que desejar no elisp, se quiser dedicar algum tempo para entender o ambiente. Não posso dizer que já o conheci tão bem, mas fiz coisas de vez em quando. O Emacs e o Xemacs não são totalmente compatíveis nesse nível, portanto, scripts de terceiros podem ser executados em um, mas não no outro.

  • Observou-se que o RMS e alguns outros hackers importantes do Emacs tiveram que se aposentar da programação devido a problemas com o OOS, onde Bill Joy, Bram Moolenaar e vários outros luminares ainda estão lá. Emacs é duro em seus dedos mindinhos.

  • O Emacs é um sistema muito mais católico que o vi, e é visto como um exemplo canônico de envolvimento de software . Juntamente com o Netscape, essa é uma das contribuições da jwz para provar essa lei.

Uma coisa única que fiz com o xemacs uma vez foi executá-lo em uma máquina e abrir uma sessão x em um xterminal (na verdade, um antigo Sun 3/60 reaproveitado) em uma sala diferente contra o mesmo buffer na mesma instância em execução.

Prós: Extensível, mais poderoso que qualquer outro editor conhecido pelo homem, integração madura com praticamente todas as principais ferramentas de programação de software livre.

Contras: Ergonomia questionável, elisp não é fácil de aprender.

Vim

Disclamer - Eu deixei de usar o emacs para o vim há cerca de 10 anos e costumo usar o vim em sistemas baseados em Windows e Unix / Linux.

  • O Vi e seus descendentes têm um excelente recurso de macro de teclado para automatizar tarefas de edição. O recurso de script no vim não é tão sofisticado quanto o elisp, mas você pode construí-lo com suporte para Python, Tcl, Perl e talvez outros sistemas. Ocasionalmente, escrevi apenas scripts (fora dos arquivos .vimrc) para o vim.

  • O Vim tem uma pegada menor que o emacs, mas isso não é grande coisa hoje em dia.

  • A documentação e a ajuda on-line do Vim são bastante boas. O Emacs tem uma documentação on-line bastante boa, mas não acho que seja tão abrangente quanto a do vim.

  • O Vim herda a peculiar interface de usuário modal do vi, mas agora tem a capacidade de se comportar como um editor sem modo, pois você pode navegar no modo de inserção. No Windows, ele pode se comportar de maneira semelhante a um aplicativo do Windows.

Prós: Bom recurso de macro de teclado, boa extensibilidade e scripts, mas não tão bom quanto o emacs. Os editores derivados do Vim ou do vi são padrão na maioria, senão em todas as distribuições linux de propósito geral ou unix. Indiscutivelmente melhor ergonomia.

Contras: a interface de usuário modal parece estranha para as pessoas acostumadas às UIs do Windows. Atualmente há menos problemas com o vim.

ConcernedOfTunbridgeWells
fonte
Gostei de ler sua resposta, mas sinto falta do fator decisivo. O que fez você mudar do emacs para o vim?
Erik B
Era apenas orgânico - além disso, as macros de teclado do vim funcionam muito bem.
ConcernedOfTunbridgeWells
1
Porra, como um programador mais jovem, o argumento da ergonomia é muito atraente. Isso pode ter resolvido minha escolha de aprender VI e VIm em vez do Emacs.
Didier A.
15

Normalmente uso o Vim, mas ambos são ótimos editores.

Aprender a usar o vi foi desagradável, mas superei e aprendi a gostar. Meus momentos mais frustrantes foram quando a tecla Caps Lock estava ativada. Você pode tentar com o gVim, mas uma das maiores vantagens do vi e do Emacs é a capacidade de fazer coisas legais enquanto mantém as mãos no teclado, e é provável que o gVim o mantenha usando o mouse. (Aprender a jogar jogos parecidos com um roguel ao mesmo tempo me deu prática com as teclas de movimento do cursor, mas me fez tentar mover na diagonal nos documentos às vezes.)

O Emacs é provavelmente mais acessível. Não tem modelagem e você não vai se ferrar pressionando a tecla Caps Lock. A idéia de controlar o editor digitando letras com a tecla de controle pressionada não deve ser muito estranha para os usuários avançados modernos, embora as chaves reais para fazer as coisas pareçam selvagens e arbitrárias para o usuário típico do Windows / Mac OS X. Novamente, as versões que permitem o uso do mouse oferecem poucos benefícios a longo prazo.

Ambos exigem algum nível de conhecimento para serem usados ​​com eficácia. Ao contrário, digamos, do bloco de notas, você não pode simplesmente sentar e editar.

Ambos são configuráveis, embora, para meu dinheiro, escrever extensões no mesmo Lisp, o editor esteja escrito seja uma experiência mais suave. (O Emacs, como normalmente distribuído, não é realmente um editor. É um ambiente Lisp adaptado para processamento de texto, com muitos softwares pré-escritos, incluindo um editor. Daí a piada "O Emacs faz um shell decente, mas poderia usar um editor melhor. ")

Eu normalmente uso o Vim porque, após um treinamento extensivo, parece mais fácil. Isso pode ser devido a vantagens no sistema de modos, onde um número imenso de comandos está disponível usando um dedo próximo às linhas domésticas, ou "síndrome do pato bebê", que se aplica muito aos editores: depois que você aprende um bom, geralmente fica com o dedo para isso.

Você não vai dar errado usando qualquer um.

David Thornley
fonte
9

A principal razão pela qual não uso o vi / vim é que é modal. A principal razão pela qual eu uso o vi é que ele está disponível em quase todos os lugares.

Dennis Williamson
fonte
12
A principal razão pela qual eu uso o vim é que ele é modal. Curva de aprendizado superior, mas muito mais fácil de usar quando você estiver acostumado.
Kris Jenkins #
1
É importante notar que, se você gosta de edição modal, Emacs tem um bom suporte para ele através do modo mal - emacswiki.org/emacs/Evil
Charles Stewart
9

Por acaso, acho que o comentário "vim é modal" acima está incorreto. O Vim possui comandos. Você pode fazer "11aAgora é a hora de todos os homens de bem .." e acabar com 11 novas linhas de texto idênticas em seu arquivo. Isso é um comando, não um modo. Mas na verdade há uma diferença muito básica nos comandos do Vim e nos comandos do Emacs. Não tenho certeza absoluta de que posso descrevê-lo, mas Eric Fischer incorporou a edição de linhas no estilo Emacs em um driver TTY há mais de 10 anos e publicou um artigo sobre isso:

http://www.usenix.org/event/usenix99/full_papers/fischer/fischer.pdf

Ele descobriu que a edição das linhas de estilo do Emacs era fundamentalmente diferente do estilo vi.

Portanto, o Emacs tem a vantagem de que muitas outras coisas (bash, gnuplot, zsh, ksh e outras que eu não consigo imaginar) acabam implementando a edição de linhas no estilo do Emacs.

Devo observar que eu pessoalmente uso o Vim o tempo todo. Sou apenas um usuário ocasional do Emacs.

Bruce Ediger
fonte
1
set -o vino bashou zshnão é muito difícil de executar (ou colocar em um rcarquivo) na minha opinião.
moon.musick
@ moon.musick - certamente não, eu faço isso o tempo todo. Só que gnuplotPostgresql psql, MySQL mysqle várias outras interfaces fazem o modo Emacs mais ou menos por padrão. Se ao menos a Oracle pudesse sqlpluseditar a linha de comando ... não, não. Seria pedir demais a uma grande corporação. Eles têm tendências a seguir!
precisa
Sim, na maioria das vezes inputrcfunciona como ferramentas de shell, mas então me pego pensando por meio segundo por jque não rola para baixo, digamos, no Mendeley Desktop depois de mudar para o terminal, e eles foram solicitados a vincular o vim várias vezes. Infelizmente, não é possível cobrir tudo e ter um ambiente consistente.
moon.musick
2
@BruceEdiger Eu duvido que os desenvolvedores de mysql(1), psql(1), gnuplot(1), também python(1), perlconsole(1), lftp(1), smbclient(1)e de fato muitos programas interativos estavam preocupados com atalhos de teclado para a linha de edição. Todos esses softwares usam o GNU Readline e o modo padrão do GNU Readline é (sem surpresa) semelhante ao GNU Emacs. set editing-mode vi no seu ~/.inputrce voila - todas essas ferramentas têm teclas de atalho do tipo vi.
Dmitry Alexandrov
9

Como não foi explicitamente declarado, acrescentarei que não há melhor ambiente de programação (Lisp em uma caixa, SLIME etc.) do que uma distribuição Emacs levemente modificada. Todas as minhas necessidades de programação (99%) são atendidas no Vim, mas, para todas as bibliotecas e rotinas Lisp que escrevo, tenho que ativar o Emacs para que tudo seja produtivo.

Shamster
fonte
8
Às vezes me pergunto se isso diz mais sobre Lisp ou sobre Emacs, e se isso é bom ou ruim ...
Kevin Cantu
8

Eu uso o Vim / gVim.

Eu costumava usar o Emacs, mas achei que o gVim geralmente trabalha mais rápido em máquinas mais lentas, além disso, devido ao seu requisito POSIX, o vi está disponível em quase todos os lugares.

Ao usar o Vim ou o gVim, uso muito o mouse, acho ótimo.

Comecei a usar o Emacs, porque era mais fácil de usar para um usuário iniciante. Eu achei o uso do nano bastante propenso a erros por algum motivo e, em algum momento, percebi que estava muito mais confortável com o uso do vi.

Agora, é uma mistura. Também uso o Eclipse e o gedit com bastante frequência. O Vim, no entanto, ainda é meu editor favorito e mais usado.

polemon
fonte
7

Uso o gVim e o Emacs bem o suficiente para ser produtivo, embora não seja especialista em nenhum deles. Uma coisa que posso dizer com certeza é que o Vim e o gVim rodam mais rápido no meu laptop Windows 7 (que eu tenho que usar no trabalho). O Emacs, na caixa do Windows, tem o estranho hábito de "pausar" por até um minuto e deixar de responder, mesmo enquanto continua aceitando a entrada do teclado, antes de cuspir tudo o que se acumula no buffer do teclado rapidamente. Isso não acontece no Mac OS ou Linux. No entanto, eu me vejo usando o Vim ou o gVim na maioria das vezes em todas as plataformas, apenas para não precisar parar e pensar em qual editor estou usando e ajustando. Dito isto, em um ambiente puramente * nix, eu provavelmente ficaria no Emacs porque acho a edição sem modelagem um pouco mais natural.

Bottom line: na minha opinião, ambos os editores são poderosos o suficiente para lidar com toda e qualquer necessidade de edição de texto. A escolha deve ser baseada em considerações práticas (como detalhes de implementação de plataforma) e estilo de trabalho.

Wing Flanagan
fonte
3

A principal diferença entre Emacs e Vim é ergonômica. Há síndrome do túnel do carpo, CTS, como você sabe. O Emacs é muito "perigo" se você tem CTS e provoca CTS. Vim - não, você pode ler sobre essa diferença em muitos lugares. Por exemplo, no Vim, você pode editar o texto apenas com um dedo. No Emacs - você não pode :)

Paulo
fonte
3
Não está nem provado que o CTS está realmente relacionado ao uso do teclado. Embora superficialmente plausível, existem links que mostram que a STC é realmente causada geneticamente mais do que qualquer outra coisa. Portanto, embora ainda possa ser útil digitar menos quando você já possui CTS, não creio que exista alguma evidência para dizer que um editor cause CTS mais que outro.
21978 Konrad Rudolph
-2

Eu uso vi/ nvi(NOT vim) porque é simples e discreto.

vimadora bipes tanto é mais difícil e um tanto óbvio ser desligado. Eu tive que remover fisicamente o alto-falante interno do PC antes de finalmente encontrar o enter-ref sobre como fazê-lo :)

set vb t_vb=

Além disso, eu não uso cores de sintaxe, o cinza sobre o preto para mim é o mais bonito.

E talvez eu seja burra demais para descobrir dessa maneira emaranhada com várias teclas pressionadas emacs, a única combinação de três teclas que me lembro é CTRL-ALT-DEL.

aa.
fonte
-2

"Quais são os prós e os contras do Vim e do Emacs?" ha!

Vou principalmente deixar os profissionais para os outros.

Os contras de ambos são o fato de ambos serem da velha escola. Ao longo dos anos, usei provavelmente 50 editores diferentes, desde editores de linha Basic, a editores de código de montagem super rápidos (VEDIT para um), a editores de GUI sofisticados, alguns melhores que outros. Eu até escrevi meu próprio editor especial chamado ForthStar e o adaptei para editar uma árvore de folhas btrieve, com vários índices para uma pesquisa poderosa, como encontrar instantaneamente as últimas folhas que acabei de editar, ou encontrar rapidamente componentes de código ou pais de folhas ou filhos.

Eu acho que vi e emacs são mais religião que músculo. As mentes criativas que as construíram progrediram amplamente, e o novo suporte carece de coragem e habilidade para reinventá-las.

Sim, o Emacs pode fazer muito, mas é retardado pelo lisp, uma linguagem bonita e agora amplamente obsoleta.

Ambos estão presos em layouts de teclado difíceis. O Emacs pode se ajustar um pouco ao usuário, reconhecendo que existe uma tecla Alt em vez do Meta antigo. E, como o WordStar, reconhece que manter o CA CB direto do CA B quando a digitação rápida não vale a distinção. Melhor simplesmente ter um que é acionado por qualquer combinação de teclas. Sim, você pode alterar as combinações de teclas, mas que confusão você terá mais tarde.

O Vi é inteligente, mas carece de uma poderosa pesquisa e substituição, como no Notepad ++, que mostra o que foi encontrado, permite expandir e aplicar seletivamente, em cores, apenas para mencionar uma inovação.

Atualmente, quase qualquer outra interface gráfica permite o zoom com a roda do mouse. A GUI do Emacs não parece fazer isso funcionar. E onde está o bom grito como Kate tem?

Meu layout de teclado favorito ao longo dos anos foi o diamante do cursor do Wordstar. Pelo menos, era fácil aprender e fazia sentido imediatamente. O que eu mais odiava foi o WordPerfect, que aumentou a complexidade e parece ter se baseado um pouco no emacs.

Vamos enfrentá-lo a maior parte do mundo tem GUI nos dias de hoje. E goste ou não, os editores de texto estão um pouco presos na idade.

Eu acho que seria melhor ter um editor universal que pudesse alternar facilmente entre o emacs, vi, wordstar ou qualquer layout de chave, e sem perder os comandos mais poderosos que ele oferece. Programadores reais precisam usar uma variedade de ferramentas de edição. Por que não ter um editor que atenda às nossas necessidades para realizar o trabalho, em vez de nos forçar a seguir o caminho deles?

Vista elíptica
fonte
Como a pergunta é feita por prós e contras, isso não responde à pergunta. Tanto quanto posso ver, apenas menciona como outros editores são melhores que o Vi e o Emacs.
Kusalananda
Quaisquer respostas são válidas para uma pergunta, até que respondam à pergunta e sejam essencialmente diferentes das anteriores. "Parece bom".
Peterh #
O Q pede claramente os contras. E eu mencionei alguns profissionais.
Visualização elíptica