Tutti i principali editor open source e molti altri hanno una funzione di scripting di qualche descrizione - alcuni (in particolare Emacs) sono famosi per questo. Gli unici che non tendono ad essere quelli molto leggeri come pico.
vim ha un native scripting language e può anche essere costruito con incorporati Python,Tcl o Perl interepreters in grado di operare su selezioni, tamponi ecc attraverso il meccanismo plugin. Emacs è interamente basato sullo scripting: ha un interprete LISP integrato direttamente nel nucleo del sistema e la maggior parte dell'editor è scritta in LISP. C'è uno scherzo su emacs che lo descrive come un interprete LISP che qualcuno ha appena usato per scrivere un editor di testo.
L'interfaccia utente di Vim deriva da vi, che è piuttosto bizzarra ma molto potente una volta che ci si abitua. Anche i macro di tastiera registrati sono particolarmente buoni e hanno una funzione di ricerca/sostituzione di espressioni regolari molto bella.
Emacs è considerato un po 'una mostruosità barocca ed è molto grande e complesso. Tuttavia, la sua capacità di scripting non è seconda a nessuno e c'è un enormous variety of macro packages che fa molte cose. Ha un seguito molto fedele di persone che lo giurano; una volta superata la curva di apprendimento (c'è un enorme corpo di risorse sul web per aiutare in questo) è davvero un sistema molto potente. Puoi personalizzare emacs in un intero IDE e ci sono persone in giro che sostengono di passare la maggior parte del loro tempo in metropolitana.
Entrambi questi editor possono funzionare in modalità testo o con una GUI e sono altamente portatili, in esecuzione su un'ampia varietà di piattaforme. Sono entrambi open-source.
Ho usato entrambi; Ero abituato a usare XEmacs (un importante fork di codice di emacs che risale a diversi anni) negli anni '90, ma poi sono andato su Vim. Uso anche vim su Windows.
Se si trova un po 'troppo l'interfaccia utente di Vim o di Emacs, sono disponibili variety of other text editors, molti dei quali offrono script. Esempi di questi sono SciTE, che ha un interprete Lua incorporato, NEdit, che ha una lingua macro homebrew o GEdit, che è sostanzialmente scritto in Python (che può essere utilizzato anche per lo scripting) e ha un'API di plugin.
EDIT: Al di fuori di un paio di progetti specifici (ad esempio Mozilla) Javascript non ha mai avuto molta trazione come uno stand-alone o linguaggio di scripting incorporato negli ambienti open-source. Storicamente non esisteva un popolare interprete Javascript open source che ottenesse un consenso diffuso nel modo in cui lo facevano Python o Tcl/Tk. Javascript è più ampiamente usato in sistemi closed source come UltraEdit o InDesign (per nominare una coppia) mentre altre lingue erano più popolari su progetti open-source.
Nessuno degli editor di testo open source che sono a conoscenza di funzionalità javascript come opzione per un linguaggio di scripting (sentiti libero di intervenire e commentare o modificare questo se ne conosci uno). Probabilmente dovrai spostare Javascript su un'altra lingua come Python o LISP. Tuttavia, ora che QT viene fornito con un interprete Javascript (QTScript), potresti trovare alcuni di quelli basati su KDE che offrono questa opzione come opzione di scripting, ma non ne sono specificamente consapevole.
Mi piace discutere con gli utenti di emacs a riguardo. Emacs * è * modale. C'è la modalità ctrl, la modalità shift, la modalità meta. L'unica differenza è che in vi, il cambio di modalità è su chiavi diverse (esc e i) invece della stessa chiave. –
L'altra differenza è che emacs lascia "modalità ctrl" quando si rilascia ctrl, non quando si preme un altro tasto. E in realtà non sarei d'accordo. La scorciatoia "C-c." sembrerebbe quindi incrociare le modalità, che suona male. In ogni caso si tratta di definizioni, che non possono essere corrette, solo (non)? Intuitive. –
Bel dolore. Emacs non è modale. Stai solo giocando con la semantica per confondere piuttosto che educare.Sei sempre in modalità di modifica del testo, a meno che tu non stia inserendo attivamente un comando. Oppure, se si vuole veramente scendere alle virate, si è sempre in modalità di comando, ma alcuni comandi non fanno altro che inserire un personaggio. –