软件教程 2025年08月6日
0 收藏 0 点赞 511 浏览 2475 个字
摘要 :

文章目录 一、CodeMirror是什么? 二、CodeMirror如何下载? 三、CodeMirror如何简单使用? 四、初始化CodeMirror编译器时可设置属性 五、CodeMirror如何使用主题? 六……




  • 一、CodeMirror是什么?
  • 二、CodeMirror如何下载
  • 三、CodeMirror如何简单使用
  • 四、初始化CodeMirror编译器时可设置属性
  • 五、CodeMirror如何使用主题?
  • 六、CodeMirror如何指定其他mode?

最近潘老师在搭建程序员在线工具箱时,需要一款能显示行号带有代码高亮效果的编辑器,后来发现CodeMirror正好满足了这一需求,而且功能非常强大,使用也很方便,支持多主题效果。下面潘老师来介绍下CodeMirror的下载与简单使用。

一、CodeMirror是什么?

CodeMirror是一个代码编辑器组件,可以嵌入到Web页面中。核心库仅提供编辑器组件,不提供伴随按钮,自动完成或其他IDE功能。它确实提供了丰富的API,在此基础上可以直接实现这些功能。

说得直白点,CodeMirror就是js+css开发出来的一款代码编辑器,能实现较好得代码显示效果,能实现多主题切换,使用方式也是很简单的。

二、CodeMirror如何下载?

可以直接到CodeMirror官网首页的进行下载。npm安装可以使用如下指令:

#安装
npm install codemirror
#导入
import * as CodeMirror from 'codemirror/lib/codemirror'
import 'codemirror/lib/codemirror.css'

三、CodeMirror如何简单使用?

npm的使用就不具体介绍了,下面我们简单说下纯js的使用方式。下载好后,我们只需简单的引入相关的js和css文件即可使用,简单案例如下:

//核心js和css
<link rel="stylesheet" href="lib/codemirror.css">
<script src="lib/codemirror.js"></script>
// mode js
<script src="mode/htmlmixed/htmlmixed.js"></script>
// 代码
<textarea id="code" style="display:none"></textarea>
<script>
var editor = CodeMirror.fromTextArea(document.getElementById("code"), { // 标识到textarea
    lineNumbers: true,//显示行号
    mode : "text/html",  // 模式,这里指定html
    // 还有很多...
  });
</script>

四、初始化CodeMirror编译器时可设置属性

  • value:初始内容
  • mode:设置编译器编程语言关联内容,对应的mine值
  • theme:编译器的主题,需要引入对应的包
  • tabSize:tab的空格宽度
  • lineNumbers:是否使用行号
  • smartIndent:自动缩进是否开启
  • indentUnit:缩进单位
  • keyMap:快捷键,default使用默认快捷键,除此之外包括emacs,sublime,vim快捷键,使用需引入工具对应的js,都在keymap目录下.
  • scrollbarStyle: 设置滚动条,默认为”null”为不显示的滚动条,可以使用提供的其他滚动条:“simple”,”overlay”选择内侧与外侧的滚动条,使用需引入以下工具包:addon/scroll/simplescrollbars.jsaddon/scroll/simplescrollbars.css
  • readOnly:设置为只读true/false;也可设置为”nocursor”失去焦点
  • Autofocus:初始时是否自动获取焦点boolean
  • styleActiveLine: 设置光标所在行高亮true/false,需引入工具包:addon/selection/active-line.js
  • 还有触发事件,类似change、blur等等

更具体的请参考官方文档属性配置信息

五、CodeMirror如何使用主题?

一般CodeMirror的默认主题不好看,我们需要使用一些其他主题样式,比如idea、eclipse、dracula等等主题,使用方式也很简单。只要导入theme包下的对应的css样式文件,再在配置中指定theme:\'主题名\'属性即可。例如我使用idea的主题:

//核心js和css
<link rel="stylesheet" href="lib/codemirror.css">
<script src="lib/codemirror.js"></script>
// mode js
<script src="mode/htmlmixed/htmlmixed.js"></script>
<link rel="stylesheet" href="theme/idea.csss">
//  代码
<textarea id="code" style="display:none"></textarea>
<script>
var editor = CodeMirror.fromTextArea(document.getElementById("code"), { // 标识到textarea
    lineNumbers: true,//显示行号
    mode : "text/html",  // 模式,这里指定html
    theme: "idea" // 指定主题为idea
  });
</script>

全部主题效果请参考官方文档,如下是mode为javascript,theme为idea的效果图:
CodeMirror的下载与简单使用

六、CodeMirror如何指定其他mode?

CodeMirror支持的mode语言包有很多种,都在mode目录下,比如除了html,还有sql、php、javascript、go、xml等等,比如潘老师的程序员工具箱的xml格式化压缩就使用了xml的mode,去看看效果
因此想要指定其他mode,只需导入mode下对应的js,再指定mode属性值即可。

到这里,想必CodeMirror的下载与简单使用你应该会了吧~

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/6152.html

管理员

相关推荐
2025-08-06

文章目录 一、Promise基础回顾 二、Promise 与 axios 结合使用场景及方法 (一)直接返回 axios …

270
2025-08-06

文章目录 一、模块初始化时的内部机制 二、常见导出写法的差异分析 (一)写法一:module.exports…

108
2025-08-06

文章目录 一、ResizeObserver详解 (一)ResizeObserver是什么 (二)ResizeObserver的基本用法 …

684
2025-08-06

文章目录 一、前期准备工作 (一)下载相关文件 (二)安装必要工具 二、处理扣子空间生成的文件…

339
2025-08-06

文章目录 一、官方文档 二、自动解包的数据类型 ref对象:无需.value即可访问 reactive对象:保持…

371
2025-08-06

文章目录 一、Hooks的工作原理 二、在if语句中使用Hook会出什么岔子? 三、React官方的Hook使用规…

844
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号