Entre o guerras santas O máis lendario do que sabemos é a guerra de editores. Vi / Vim contra Emacs. Isto é particularmente divertido porque ambos son software libre con capacidades moi altas.
Isto remóntase a moitos anos atrás. Emacs foi desenvolvido por Richard Stallman nos anos 35, lanzado hai aproximadamente 1991 anos. Vi ten a mesma idade, creado por Bill Joy. Vim, por outra banda, é algo máis recente e xorde da necesidade de Bram Moolenar de crear un clon de Vi para Amiga en XNUMX.
Que retro! Editores da época da pedra, cando a vida era máis sinxela. E seguimos empregándoos porque evolucionan e se adaptan aos tempos. Vim e Emacs usan interfaces modernas en GTK, teñen as súas propias linguaxes de extensión, xestores de paquetes; entre outras cousas que os colocaron entre os editores moderno.
Para que os uso?
Poñamos unha circunstancia completamente hipotética. A Gúgol é unha palabra matemática que define unha seguida de cen ceros. Como o escribimos nun editor de texto?
A primeira solución que se me ocorre é escribir un e premer a tecla 0 ata que o contador de columnas me estableza 101, porque 101 caracteres deben medir esta expresión. Supoñemos que editamos isto nun editor de texto competente, que ten unha barra de estado para mostrar estas cousas.
Agora podo pensar nunha solución máis sinxela:
i1 ESC 100a0 ESC
Por suposto, esta solución require Vim ou, polo menos, Vi. El mando é bastante sinxelo e é como se lle dixésemos a Vim: Estando en modo normal, insira 1 e volve ao modo normal. Agora insira despois do cursor cen veces 0 e volve ao modo normal. Vim realizará o noso pedido sen dúbida.
Complexidade
Esta solución parece extremadamente complexa e enténdoa. En primeiro lugar, porque estamos ante o concepto de editor modal. Pero hai casos nos que é moito máis útil do que parece.
Digamos que temos unha lista da compra. Iremos á tenda e queremos escribir o que imos traer. Lembre que é algo hipotético, ninguén debería levar o seu ordenador á tenda para buscar comida. En fin, esta é a nosa lista:
1 plátano 4 mazás 2 quilos de azucre 1 litro de auga
É unha lista de compras moi sinxela. Pero imos facer algúns arranxos. En primeiro lugar, creo que algúns plátanos máis non estarían mal. Xa que nos gusta a estética, cambiaremos a minúscula en mazás para deixala como Banana e substituiremos os nomes das unidades polas súas abreviaturas.
Así que imos comezar. Xa que queremos unha copia de seguridade da nosa lista orixinal, facemos unha copia con 4aa e pegámolo a continuación con p. Prema Ctrl-a un par de veces para aumentar o número de plátanos e pasar ao final da seguinte palabra con e. Baixamos á segunda liña, facemos un Fm para chegar á palabra mazás e premer ~ (AltGr-4 no meu teclado) para que a letra cambie á súa versión maiúscula. Facemos un j para baixar á seguinte liña e apareceremos no k de quilos con b. Saímos do modo normal escribindo cw e escribindo a palabra de substitución para quilos, que será kg. Prememos ESC, volvendo ao modo normal e de novo j facer o mesmo con Litro. Listo. Este é o aspecto da nosa lista agora.
3 Plátanos 4 Mazás 2 kg de azucre 1 L de auga
O poder
Resumamos a acción anterior nesta:
4yy G p 2Ctrl-A e Fm ~ jb cw kg ESC jb cw L ESC
Respetei algúns espazos para facelo comprensible, pero normalmente non se fai. Esta orde dun robot fainos pensar moito sobre a súa utilidade. Pero seguro que é máis rápido facelo que moverse co rato, seleccionar, copiar, pegar, eliminar, etc.
Os editores sempre que Vim ou Emacs poidan facer cousas así porque levan anos desenvolvéndose e con ideas moi claras de como facer as cousas.
Curvas de aprendizaxe
Si, son íngreme. Pero para iso van iniciativas como Cream, que proporciona un entorno Vim completamente listo para o seu uso sen necesidade de loitar cos modos e outras cousas, e co modo gurú, unha extensión de Emacs que, polo que sei, axuda aos principiantes.
O modo gurú forma parte de Emacs Prelude, unha colección de extensións que o facilitan se queres aprender.
Extensións
Dado que son editores máis estendidos que moitos editores modernos e teñen as súas propias linguaxes de extensión, podes atopar temas de cor, complementos e outros. Hai cousas tan interesantes como:
- Un organizador persoal (Emacs)
- Un wiki dentro do editor (vim)
- Formas de facerche terapia, café y chío/cavar (Emacs)
- E incluso un distribución completa para simplificar a vida dos programadores (Vim)
Parece que é máis fácil (ou máis agradable) programar extensións en Emacs Lisp que en VimScript. Quero dicir, é unha linguaxe funcional interpretada por un núcleo feito para iso, contra unha linguaxe imperativa feita para configurar e ampliar.
Conclusión
Botar unha ollada! Non che custa nada, ambos son software gratuíto distribuído de balde. Deben estar nos repositorios de todas as distribucións coñecidas polo home e incluso poden atoparse en sistemas propietarios maléficos. Non hai moito máis que pedir.
E, finalmente, se che sorprendeu por que puxen un e antes de Emacs no título en lugar dun y, é porque me parece mellor. Algo así como / í-macs /. Puiden aforrarme problemas de ortografía cambiando a posición, pero gústame moito que Vim o fixera 😀
27 comentarios, deixa os teus
Eu só uso o nano e só para editar algúns ficheiros 0.0
Este é principalmente un argumento para usalos. Vexo que moita xente prefire non probalos e empecei a escribir algo para animalos. Xa está.
(Sei que é un elemento débil)
Non é preguiceiro en absoluto, emacs e vim son excelentes editores de texto, prefíroos (vim) no canto dun IDE
lembranzas
Grazas. Agora que o penso, creo que accidentalmente dei unha primicia. A "distribución" que menciono parece que se estreou hoxe.
ahahaha pásame igual, con nano me sobra 😀
Ben, recentemente necesitaba editar un ficheiro por telnet nun punto de acceso con dd-wrt e tiven que lembrar vi.
1. " hai a guerra de editores. »
ERRO!
Vim é un editor, Emacs é o colisionador de hadróns listo para usar no teu ordenador, xa sabes!
2. Usar Cream (ajjj) ou calquera tipo de "axudante" para Vim ou Emacs é o mesmo que instalar Manjaro e pretender que instalou e usa Arch, coa posible advertencia de que un axudante non cambia a esencia de Vim ou Emacs e Manjaro é Manjaro pero non Arch.
Se realmente queres xogalo con Emacs, hai algúns sitios interesantes:
http://emacsrocks.com/
http://www.masteringemacs.org/
http://batsov.com/prelude/
http://lisperati.com/casting.html
Emacs é un intérprete Lisp con funcións engadidas para a edición de texto.
A crema pode ser todo o que queiras, pero está aí para que os principiantes non caian directamente na parede de edición modal.
Emacs é algo máis fácil ao principio, porque si, escríbelle ao primeiro
[modo falmewar ON]
Emacs, ese sistema operativo ao que 35 anos despois aínda lle falta un bo editor de texto 😛
"Vim e Emacs". Esa "e" no título (e nalgún lugar do texto) está mal utilizada ...
E, por certo, xa uso vim para todo. Empeceino a usar o ano pasado e agora tornouse indispensable para min. Tamén ten a vantaxe de que vi está preinstalado en todos (ou polo menos en case todos), o que é case o mesmo no manexo, polo que sabendo como usalo pode editar ficheiros en calquera distribución, teña X11 ou non.
Probei Emacs, pero parecían incómodas combinacións de teclado polo que me centrei en Vim
Xa o explicou ao fondo. Para min o que se debería usar e porque a frase soa así / vim e i-macs /, observando que o y cambia a e cando a seguinte palabra comeza co son i.
Non obstante, era moito máis elegante poñelo cara atrás e evitar problemas, pero un pouco de experimentación non prexudica a ninguén.
Está ben, non cheguei a ler o artigo completo por falta de tempo jaja.
De todos os xeitos segue a ser unha falta de ortografía, por máis que pareza mellor.
Está ben. Nada máis que esta cousa estraña de criticar sen rematar a lectura.
Espero que me poida desculpar por esta falta. Parece que na revisión tamén a aprobaron, polo que teñen que estar de acordo comigo, pero habería que revisar algunha referencia da RAE para palabras estranxeiras. Estes non son traducibles.
Si, non o rematei, admito o erro, pero ultimamente non teño tempo e non podo estar tanto como me gustaría. De feito, é moi estraño que ao final puidese estar aquí un par de momentos hoxe.
En canto ás palabras estranxeiras, a conxunción 'e' non é unha palabra estranxeira, aínda que emacs o sexa. Polo que entendo (que tampouco teño tempo de comprobar agora) emacs debería ler emacs, por moito que o leamos en inglés. Se non, sería difícil aplicar as regras da ortografía porque se falas español non tes que falar inglés nin alemán e, polo tanto, non tes que saber como se pronuncian esas palabras neses idiomas.
En fin, non foi unha crítica, só un comentario e dígoche dende agora que sempre me gustan os teus artigos 😉
Grazas. A retroalimentación e as críticas construtivas sérvennos a todos.
Non me gusta usalos pero, nun curso de Programación Funcional Avanzada, tiña que facer un editor semellante a Vim, pero en haskell.
Prefiro vi ou vim porque é o máis universal xa que funciona igual en calquera sistema operativo e todo * nix inclúeo e por todos quero dicir a todos desde GNU / Linux, HP-UX, Solaris, AIX, BSD ata versións máis curtas de Linux como dd-wrt.
Programa 100% con VIM (Ruby, PHP, Javascript, Coffescript, CSS e moito máis)
aquí hai unha distribución para os programadores de ruby, é moi completa e ten moitas cousas útiles, saúdos (https://github.com/carlhuda/janus)
Isto é o que digo (arriba): uso vim para mono, java, perl, bash e python, só as linguas non interpretadas teñen que usar o terminal para compilar, en FreeBSD uso (e uso) unha gran cantidade de VI que é o editor nativo pero tamén instala moi ben ee e joe (semellante a nano), en Gentoo o bo é que trae nano pero xa compilei vim e gústame moito! É o mellor editor que hai e modificado ás túas necesidades, é unha ferramenta perfecta para a administración do sistema
lembranzas
Vim Vim Vim !, para sempre, funciona para todo e en calquera lugar, nunca o cambio
Ahm, non sei, son preguiceiro e uso Sublime xD
Sempre uso Vim, encántame e paréceme moi práctico e cómodo 😀
Simplemente vim, esencial no meu día a día.
vim NORMAS! pero ROCAS «ed» !!!!,
Vim laranxa escribe ben vim cristal escribe normal, vim, vim, vim ...
Debería aprender as diferenzas entre "por que", "por que", "por que" e "por que". Home, en todo o texto non deu nin un.