#59 Bueno, en emacs pasa algo parecido, no se integra en el paquete por defecto hasta que no esta realmente testeado y el nivel de desarrollo es suficientemente maduro, por ejemplo con JDEE que tardaron mucho en meterlo en el paquete base.
Una ventaja de emacs es que realmente sobre un 75% del codigo es lisp, y mas o menos un 24% es realmente un interprete lisp para el dialecto elisp (el restante 1% mas o menos son partes de asm, c++, perl, sh, etc). Este interprete lisp, realmente interpreta el 75% del codigo restante, que puede ser cambiado al vuelo mientras se trabaja en el sin necesidad de recompilar; es por eso por lo que se dice que es altamente customizable, porque hasta las teclas basicas pueden ser modificadas, reprogramadas las funciones a las que llaman. Es decir, no es solo asignar un juego de keybindings a funciones, realmente se puede modificar absolutamente todo, seria lo equivalente a que en vi pudieses modificar el :q o el ESC (por supuesto se puede, modificando el codigo, pero requiere recompilar y volver a ejercutarlo, ya que esto esta fuera de las posibilidades del .virc o .vimrc).
Referente a lo de autodocumentado es tambien interesante: Control-h es el prefijo de ayuda: sin saber nada como digo tienes un menu (tambien se puede mostrar en modo texto con F10) pero por ejemplo sabiendo que Control+h es el prefijo de ayuda, al lanzar emacs se lanza una pagina por defecto que indica como lanzar el tutorial: Control-h + t. Lo interesante realmente no es esta parte, sino que si por ejemplo buscas una funcion relacionada con "reemplazos" para cadenas porque no sabes como hacerlo en emacs harias Control-h + a (de apropos), entonces escribes "string" o "replace" y busca todas las funciones relacionadas en el propio codigo de emacs que se autodocumenta como digo. Pero por ejemplo si quieres saber que juego de keybindings esta asociado a dicha funcion (una vez ya la has descubierto con el comando anterior) lanzarias… » ver todo el comentario
#47 si, pues de hecho usas bastante la filosofia de emacs aunque parezca contradictorio, vi como bien sabes es ligero, que poco tiene que ver con vim que anaden mas y mas features; por eso yo digo que cada vez estan haciendo mas lo que es emacs. De todas formas aunque emacs sea pesado, yo lo lanzo como daemon y luego tarda 0 seg. en abrir. Por lo que no necesitas tampoco tener ninguna ventana asociada realmente y vas conectando a buffers (por eso deje de usar screen, porque ya no le vi sentido).
De todas formas siempre me gusto vi y vim y por eso los use, pero lo cierto es que cuando trabajaba en cisco recibia unos 400 mails al dia, al mismo tiempo que desarrollaba y ademas tenia un hack de emacs implementando un proto para debuggear desde la maquina en tiempo real procesadores de ciertos routers (no hablo de usar ssh, esto era mucho mas interesante).
De todas formas a mi emacs no me llamo la atencion hasta que vi usarlo masivamente en ciertos lugares internos a nivel profesional (en ambientes de estudiantes siempre habia visto mucho mas el uso de vi/vim). Es por lo que con anterioridad siempre habia ignorado a emacs por mi editor favorito por aquel entonces.
En emacs por defecto tienes 3 tipos de terminales: shell, eshell (con interprete elisp de intermediario) y xterm (con emulacion de terminal) que puedes asociar a rxvt. Aunque yo uso zsh desde fuera porque aun no hemos portado del todo ZLE para combinar perfecto zsh dentro de emacs.
Por cierto, lo que te decia del wm, yo lanzo varias instancias para cada una de las pantallas, modifico en tiempo real el wm que esta en lisp, si cae alguna cae la instancia de otra pantalla pero nunca en la que desarrollo, ademas de guardar el estado... ademas de poder ver en tiempo real como modificas y ejecutas las propias X.
Si tienes un rato te invito a que le des un oportunidad a emacs y lo pruebes por unas semanas. El wm es stump y si desarrollas o has sido/eres desarrollador te recomiendo que veas sbcl (steal bank common lisp), algo que es muy especial y curioso. La verdad es que haber programado tantos anos en c, c++, etc y descubrir conceptos nuevos y avanzados como los de las 'continuaciones' no tiene precio. Por supuesto, es otro mundo, otra logica y otra manera de pensar.
Luego mirare en mi otro disco duro y te pasare algunas demos, incluso veras como en los 80 en zweis ya tenian algunos conceptos de ventanas y editores que hoy en dia algunos editores muy avanzados lo acaban de implementar, simplemente brillante.
De todas formas a mi me ha gustado conocer sistemas no unix like y no windows al mismo tiempo, se encentran cosas curiosas e interesantes por ahi. Lo dicho, en cuanto pueda te busco algunos links.
Lo del raton es cierto, pero yo hace mucho que no uso raton para todo esto, un teclado especial (symbolics) y unos pedales si quieres optimizar al maximo.
Lo dicho, nada mas pueda te mando algunos links por si tienes curiosidad.
Ya que algunos por ahi mencionan en comentarios anteriores a emacs...
Comparar emacs con editores en la actualidad no tiene mucho sentido. La definicion de emacs hace mucho que deberia actualizarse y mas que un editor es un entorno.
Han existido muchos flamewars de vi y emacs en lo que muchos argumentos carecen en la actualidad de sentido. En mi caso comence a usar vi durante mas de 7 anos, en la multinacional en la que entre todos usaban emacs, cosa que me sorprendio... desde entonces no he dejado de usarlo e integrarlo con todo lo que he podido (mis razones tengo) y si pasas pocas horas delante del ordenador para trabajar no tiene mucho sentido quiza usar emacs, ya que la curva de aprendizaje es compleja. Pero si te tiras 12h al dia desarrollando por muchos anos, entre otras cosas es lo mas optimo con diferencia.
En mi caso tengo integrado en emacs el correo, navegador, irc/jabber/gtalk, desarrollo en el, tengo mis shells interconectadas en buffers de emacs (tanto remotas como locales), hasta hojas de calculo que recogen datos de celdas remotas, lista de tareas enlazadas a calendarios, calendarios con avisos, gdb integrado, e incluso el wm que modifico en tiempo real (conectado a emacs) sin necesidad de compilar e interpretado, navegador con soporte de imagenes, una supercalculadora que cuando el matlab no soporta operaciones con tantos decimales, esta en emacs si. Un sin fin de cosas, donde empleo el mismo juego de keystrokes generales para todos los modos; por lo que no necesito recordar que control+s es control+b o control+f para search/find/buscar dependiendo de la aplicacion que se lance y el idioma que este. Paso de parametros a las funciones en emacs que invoco, etc. Por eso, lo de que necesitas 11 dedos para usar emacs es un poco leyenda urbana. Ademas tienes menu sin necesidad de aprender ningun keybinding realmente... directamente en emacs comienzas a escribir y no necesitas saber en que modo estas, es bastante intuitivo y autodocumentado.
Una ventaja de emacs es que realmente sobre un 75% del codigo es lisp, y mas o menos un 24% es realmente un interprete lisp para el dialecto elisp (el restante 1% mas o menos son partes de asm, c++, perl, sh, etc). Este interprete lisp, realmente interpreta el 75% del codigo restante, que puede ser cambiado al vuelo mientras se trabaja en el sin necesidad de recompilar; es por eso por lo que se dice que es altamente customizable, porque hasta las teclas basicas pueden ser modificadas, reprogramadas las funciones a las que llaman. Es decir, no es solo asignar un juego de keybindings a funciones, realmente se puede modificar absolutamente todo, seria lo equivalente a que en vi pudieses modificar el :q o el ESC (por supuesto se puede, modificando el codigo, pero requiere recompilar y volver a ejercutarlo, ya que esto esta fuera de las posibilidades del .virc o .vimrc).
Referente a lo de autodocumentado es tambien interesante: Control-h es el prefijo de ayuda: sin saber nada como digo tienes un menu (tambien se puede mostrar en modo texto con F10) pero por ejemplo sabiendo que Control+h es el prefijo de ayuda, al lanzar emacs se lanza una pagina por defecto que indica como lanzar el tutorial: Control-h + t. Lo interesante realmente no es esta parte, sino que si por ejemplo buscas una funcion relacionada con "reemplazos" para cadenas porque no sabes como hacerlo en emacs harias Control-h + a (de apropos), entonces escribes "string" o "replace" y busca todas las funciones relacionadas en el propio codigo de emacs que se autodocumenta como digo. Pero por ejemplo si quieres saber que juego de keybindings esta asociado a dicha funcion (una vez ya la has descubierto con el comando anterior) lanzarias… » ver todo el comentario