原文链接

Replit - Ace, CodeMirror, and Monaco: A Comparison of the Code Editors You Use in the Browser

我已经为 Replit 工作了大约有六年的时间,随着团队的发展,我一直专注于产品的 IDE (我们称之为「工作区」)部分。理所当然的,我就越来越专注于代码编辑器。虽然我们考虑过创建一个满足我们需求的代码编辑器,但是开发代码编辑器的复杂性、可用的开源选项的丰富性以及我们员工的规模使其成为一个充满未知挑战的事情,因此我的时间可能不会花在构建一个我们自己的编辑器这方面。我有幸(和痛苦)在生产环境中使用 Ace、Monaco 和 CodeMirror 这三种代码编辑器,有时候是同时使用(稍后会有详细介绍)。在本文章中,我将回顾一些 Replit 的历史和我使用编辑器的经验,以及这二者是如何相互作用的。

如果你看这篇文章只是为了直接比较这三种代码编辑器,那么请直接跳到最后,我将总结和比较放到了那里。

前奏:Ace

在 Replit 早期,大约在 2011 年,是没有代码编辑器的。我们使用一个纯粹的 REPL 界面,一个带有简单输入框的控制台。添加代码编辑器显然是迫在眉睫的,特别是如果我们想要创造更加复杂的程序的情况下。代码编辑器为我们提供了语法高亮显示、编辑器快捷键、自动缩进、搜索和替换等功能。Cloud9 当时发布了 Ace,它是一个功能齐全、性能出色的基于 Web 的代码编辑器。截止目前为止,Ace 编辑器仍然在积极维护中;它有着丰富的生态系统,支持多语言、按键绑定,并且在浏览器中运行良好。

Ace,CodeMirror 和 Monaco:Web 代码编辑器的对比相关推荐

  1. Vue3中使用Monaco Editor代码编辑器记录~持续更新

    Vue3中使用Monaco Editor代码编辑器记录-持续更新 因为毕设需要用到代码编辑器,根据调研,我选择使用monaco-editor代码编辑器 前端框架使用Vue3 + elementUI m ...

  2. ace.js实现一个在线代码编辑器

    背景 ACE简介: 功能实现 1.引入js 2.添加控件 3.初始化组件 4.保存时代码语法检测 5.效果图: 6.官网在线测试: 7.遇到的一些问题: 背景 项目需要,在一些场景,用户需要手动编写一 ...

  3. CodeMirror 多功能在线代码编辑器

    CodeMirror 是一款允许在浏览器中使用的多功能文本编辑器,专用于编辑代码,并附带超过 100 种语言模式和各种插件,可实现高级的代码编辑功能,包括代码高亮显示.功能扩展以及多个主题样式 Cod ...

  4. Reac16+Monaco打造代码编辑器(前端部分)

    效果图 实现 这里小编只讲编辑器的主体部分,及两个选择框以及编辑器部分. 首先是选择器,毕竟主体的编辑器需要通过选择器来改变样式以及提供语言高亮等支持 SelectBox.js import Reac ...

  5. Vue中使用Monaco Editor代码编辑器

    一.安装依赖 npm install editor@1.0.0 npm install monaco-editor@0.19.3 npm install monaco-editor-webpack-p ...

  6. html java编辑器插件,5+用Java编写的最佳代码编辑器插件

    本文概述 如今, 开发工作正在突飞猛进, 如今你触手可及的基于云的IDE使你无论身在何处都能工作.这些服务中最重要的组件是代码编辑器.是的, 你可以在其中编辑代码的那个框用奇特的颜色, 自动完成和其他 ...

  7. 通过vue-codemirror和CodeMirror将代码编辑器添加到web项目中

    前言 最近项目中有一个需求是,需要添加一个代码编辑器到项目中.也不知道是谁设计的,将代码编辑器添加到项目中? 费了九牛二虎之力终于找到了 vue-codemirror 和 CodeMirror 感觉是 ...

  8. vue2项目使用codemirror插件实现代码编辑器功能

    1.使用npm安装依赖 npm install --save codemirror 2.在页面中放入如下代码 <template><textarea ref="mycode ...

  9. java在线编辑器_微软开源在线代码编辑器——Monaco Editor

    介绍 Monaco Editor是为VS Code提供支持的代码编辑器,运行在浏览器环境中.编辑器提供代码提示,智能建议等功能.供开发人员远程更方便的编写代码.移动浏览器或移动Web框架不支持Mona ...

最新文章

  1. 费用流 ---- P1251 餐巾计划问题[拆点](网络流24题)
  2. wPaint在线绘图插件
  3. SpiderData 2019年2月12日 DApp数据排行榜
  4. EasyUi – 4.datagrid
  5. android键盘ui,android – 在自定义键盘中重新调整候选视图的UI
  6. python与shell校验IP地址合法性
  7. mysql集群session_Jetty9.2.2集群Session共享
  8. Linux之ACL权限控制
  9. Linux---单例模式
  10. 企‮增业‬长‮两的‬种方式:内‮式生‬增长、外‮式延‬增长
  11. MWeb建立静态网站/博客的基础教程
  12. 中国科学院图书馆分类法
  13. 软件观念革命:交互设计精髓_最全交互设计书单
  14. html图片重叠轮播,原生js实现图片层叠轮播切换效果
  15. 苹果手机换android,我从苹果手机换回了安卓手机,是怎样的体验呢?
  16. 打开文件位置在计算机游戏里面,Win7电脑“打开或关闭windows功能”里面没有游戏文件夹的修复方法...
  17. 求最小公倍数利用数组java_菜鸟级求解:Java求1到20的最小公倍数
  18. 记录: 去掉String的最后一个逗号
  19. 利用大数据风控教你全栈式实时反欺诈
  20. Win11插耳机没有声音-个人解决方法分享

热门文章

  1. 失败教训:可口可乐百年来最大的营销失误
  2. APP软件的几种开发方式
  3. Linux系统下在普通用户如何使用root权限
  4. RxJava2出现:Unable to create call adapter for io.reactivex.Flowable
  5. 计算机字符格式化集体备课教案,集体备课教案范文
  6. contactform7 ajax,WordPress询盘插件 – Contact Form 7
  7. 测绘工程与计算机论文,测绘工程毕业论文.doc
  8. 道闸系统临时服务器什么意思,停车场管理系统常见问题解答
  9. 短连接和长连接的区分
  10. 婚姻出现危机最终做出妥协的多是女人