Сейчас не время вступать в войну редакторов — Vim теперь доступен в браузере. Да, порт Vim на JavaScript существует.
Есть много проектов и историй, «перенесенных на JavaScript», но к этой идее нужно немного привыкнуть — не из-за его высокой производительности, а потому, что он действительно не подходит для браузера.
Vim — это командный текстовый редактор, основанный на редакторе Unix vi. Войны редакторов, которые продолжаются с первых дней существования vi, в основном касаются того, какой лучше использовать — vi или Emacs. Дело в том, что если вы живете в одном текстовом редакторе, вы постепенно настраиваете его так, как хотите, и постепенно объединяете с ним свою личность. Многие программисты заявляют, что работают с vi или Emacs намного быстрее, чем с лучшим современным редактором с функцией завершения кода.
Vi, Vim и Emacs — это почти знаки того, что вы «настоящий» программист, и все мы знаем, что «настоящие» программисты не используют JavaScript. Однако Vim написан на C ++, а Emscripten компилирует C ++ в JavaScript. Так что никакой C ++, каким бы культовым он ни был, не является безопасным. Именно это Лу Ван сделал с Vim для создания порта JavaScript.
Однако процесс преобразования не всегда проходит гладко, и Лу Ван рассказывает о самой большой проблеме — о том, что во всех предыдущих средах Vim была функция синхронного сна без занятости. То есть вы можете использовать sleep (t), не блокируя все приложение. JavaScript является асинхронным и однопоточным, поэтому функции, использующие спящий режим, должны быть преобразованы в асинхронные обратные вызовы. Как говорит Лу Ван:
«Каждый раз, когда vim.js дает сбой и вы видите, что функция обратного вызова не указана! В консоли браузера, поздравляю, вы нашли еще одну асинхронную функцию в целом».
В настоящий момент программа описывается как «нестабильная», и если вы хотите помочь с проектом, посетите страницу GitHub.
Основная проблема Vim в браузере — почему?