Todos los principales editores de código abierto y la mayoría de los demás tienen una función de scripting de alguna descripción, algunos (Emacs en particular) son famosos por ello. Los únicos que no tienden a ser los muy ligeros como pico.
vim tiene un native scripting language y también puede ser construido con incrustados Python,Tcl o Perl interepreters que pueden operar en las selecciones, tampones, etc a través del mecanismo de plugin. Emacs tiene que ver con scripts, tiene un intérprete LISP integrado en el núcleo del sistema y la mayoría del editor está escrito en LISP. Hay una broma sobre emacs que lo describe como un intérprete de LISP que alguien acaba de usar para escribir un editor de texto.
La interfaz de usuario de Vim desciende de vi, que es algo peculiar pero muy poderoso una vez que te acostumbras. También hace macros de teclado grabadas particularmente bien y tiene una muy buena función de búsqueda/reemplazo de expresiones regulares.
Emacs es considerado como una especie de monstruosidad barroca y es muy grande y compleja. Sin embargo, su capacidad de creación de scripts es insuperable y hay un enormous variety of macro packages que hace muchas cosas. Tiene un seguimiento muy leal de personas que lo juran; una vez que haya superado la curva de aprendizaje (hay una gran cantidad de recursos en la web para ayudar con esto), es un sistema muy poderoso. Puede personalizar emacs en un IDE completo y hay personas alrededor que dicen pasar la mayor parte del tiempo de su tubo en él.
Ambos editores pueden funcionar en modo texto o con una GUI y son muy portátiles, se ejecutan en una amplia variedad de plataformas. Ambos son de código abierto.
He usado ambos; Yo solía usar XEmacs (un código-tenedor clave de emacs que se remonta a varios años) en la década de 1990, pero fue a vim más adelante. Incluso uso vim en Windows.
Si encuentra que la interfaz de usuario de Vim o Emacs es demasiado, hay un variety of other text editors disponible, muchos de los cuales ofrecen secuencias de comandos. Ejemplos de esto son SciTE, que tiene incorporado el intérprete Lua, NEdit, que tiene un lenguaje de macro homebrew propio o GEdit, que está sustancialmente escrito en Python (que también se puede usar para crear scripts) y tiene una API de complemento.
EDIT: Fuera de algunos proyectos específicos (por ejemplo Mozilla) Javascript no tiene mucha tracción como autónomo o lenguaje de script incrustado en los círculos de código abierto. Históricamente, no existía un popular intérprete de JavaScript de código abierto que obtuvo una amplia aceptación en la forma en que Python o Tcl/Tk lo hicieron. Javascript es más utilizado en sistemas de código cerrado como UltraEdit o InDesign (por nombrar un par) mientras que otros lenguajes eran más populares en proyectos de código abierto.
Ninguno de los editores de texto de código abierto que conozco tienen javascript como opción para un lenguaje de scripting (siéntase libre de intervenir y comentar o editar esto si conoce uno). Es probable que tenga que pasar de Javascript a otro idioma, como Python o LISP. Sin embargo, ahora que QT viene con un intérprete de Javascript (QTScript) puede que encuentre algunos de los basados en KDE que ofrecen esto como una opción de guiones, pero no estoy específicamente al tanto de ninguno.
Me gusta discutir con los usuarios de emacs sobre esto. Emacs * es * modal. Está el modo ctrl, modo shift, modo meta. La única diferencia es que en vi, el cambio de modo se realiza en diferentes teclas (esc e i) en lugar de la misma tecla. –
La otra diferencia es que emacs sale del "modo ctrl" cuando sueltas ctrl, no cuando presionas otra tecla. Y yo realmente estaría en desacuerdo. El atajo "C-c". parecería cruzar modos, lo que suena mal. En cualquier caso, se trata de definiciones, que no pueden ser correctas, solo (des) intuitivas. –
Buena pena. Emacs no es modal. Simplemente juegas juegos con semántica para confundir en lugar de educar.Siempre está en el modo de edición de texto, a menos que esté ingresando un comando activamente. O bien, si realmente quieres ponerte al día con las tachuelas de metal, siempre estás en modo comando, pero algunos comandos no hacen más que insertar un carácter. –