Все основные редакторы с открытым исходным кодом и большинство других hava - средство создания сценариев некоторого описания - некоторые из них (в частности, Emacs). Только те, которые не имеют тенденцию быть очень легкие из них, как pico.
vim имеет native scripting language, а также может быть построен с встроенными Python,Tcl или Perl interepreters, которые могут работать на выбор, буферы и т.д. через механизм плагинов. Emacs - все о скриптах - у него есть интерпретатор LISP, встроенный прямо в ядро системы, и большая часть редактора написана в LISP. Есть анекдот об emacs, описывающий его как интерпретатор LISP, который кто-то просто использовал для написания текстового редактора.
Пользовательский интерфейс пользователя Vim происходит от vi, который несколько причудливый, но очень мощный, как только вы привыкнете к нему. Он также отлично записывает макросы клавиатуры и имеет очень хороший инструмент поиска/замены регулярных выражений.
Emacs считается небольшим монстром в стиле барокко и очень большой и сложный. Тем не менее, его возможности сценариев не имеют себе равных и есть enormous variety of macro packages, которые многое делают. У него очень лояльное следование людям, которые клянутся им; как только вы преодолеете кривую обучения (в Интернете есть огромное количество ресурсов, чтобы помочь в этом), это действительно очень мощная система. Вы можете настроить emacs во всю IDE, и есть люди, которые утверждают, что тратят большую часть своего времени на трубу.
Оба этих редактора могут работать в текстовом режиме или с графическим интерфейсом и очень портативны, работают на самых разных платформах. Они оба с открытым исходным кодом.
Я использовал оба параметра; Раньше я использовал XEmacs (основной код-код emacs, который восходит несколько лет назад) в 1990-х годах, но позже отправился в vim. Я даже использую vim для Windows.
Если вы обнаружите, что пользовательский интерфейс Vim или Emacs слишком много, есть variety of other text editors, многие из которых предлагают скрипты. Примерами являются SciTE, который имеет встроенный интерпретатор Lua, NEdit,, который имеет собственный макроязык собственного доморощенного или GEdit, который по существу написан в Python (который также может использоваться для его скриптинга) и имеет API-интерфейс плагина.
EDIT: Вне нескольких конкретных проектов (например Mozilla) Javascript не получил много тяги, как автономный или встроенный язык сценариев в открытых исходных кругах. Исторически не было популярного интерпретатора Javascript с открытым исходным кодом, который получил широкое признание в том, как это делали Python или Tcl/Tk. Javascript более широко используется в системах с закрытым исходным кодом, таких как UltraEdit или InDesign (для обозначения пары), тогда как другие языки более популярны в проектах с открытым исходным кодом.
Ни один из текстовых редакторов с открытым исходным кодом, о котором я не знаю, является javascript в качестве опции для языка сценариев (не стесняйтесь входить и комментировать или редактировать это, если вы знаете об этом). Вам, вероятно, придется переместить Javascript на другой язык, например Python или LISP. Однако теперь, когда QT поставляется с интерпретатором Javascript (QTScript), вы можете найти некоторые из основанных на KDE, которые предлагают это как вариант сценариев, но я не знаю об этом с самого начала.
Мне нравится спорить с пользователями emacs об этом. Emacs * * модальный. Существует режим ctrl, режим сдвига, мета-режим. Единственное различие заключается в том, что в vi изменение режима происходит на разных клавишах (esc и i) вместо одного и того же ключа. –
Другое отличие заключается в том, что emacs оставляет «ctrl mode» при отпускании ctrl, а не при нажатии другой клавиши. И я бы не согласился. Ярлык «C-c.» тогда казалось бы, перекрестные моды, что звучит неправильно. В любом случае это сводится к определениям, которые не могут быть правильными, только (un)? Интуитивно понятными. –
Хорошее горе. Emacs не является модальным. Вы просто играете в игры с семантикой, чтобы запутать, а не просвещать.Вы всегда находитесь в режиме редактирования текста, если вы не активно вводите команду. Или, если вы действительно хотите перейти к латунным клавишам, вы всегда находитесь в командном режиме, но некоторые команды ничего не делают, кроме как вставить символ. –