CodeMirror使用

本文介绍了CodeMirror插件的功能和使用方法,包括如何将其应用于网页端代码编辑器,并提供了配置示例及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是Code Mirror

Code Mirror是由js写的一款插件,其功能非常强大,用来实现网页端代码编辑器非常方便。

2.使用Code Mirror

首先要到Code Mirror官网下载此插件,然后在网页中引入即可。http://codemirror.net/

首先,要引用是 lib 目录下的 codemirror.js,还有一个就是同目录下的codemirror.css 文件

<script src="lib/codemirror.js"></script>
<link rel="stylesheet" href="lib/codemirror.css"/>

接下来要引用的就是在mode目录下编辑器中要编辑的语言对应的js文件,下面以python文件为例:

<script src="mode/python/python.js"></script>

引用的文件用于支持对应语言的语法高亮。

在实际项目中,一般都不会直接把body作为编辑器的容器。而最常用的,是使用textarea。

要把 textarea 实现成一个支持高亮的编辑器,CodeMirror 提供了非常简单的方法:

<textarea id="editor" name="editor"></textarea>
var myTextarea = document.getElementById('editor');
var CodeMirrorEditor = CodeMirror.fromTextArea(myTextarea, {
              mode: "text/x-python", 
              lineNumbers: true
});

配置说明

在使用CodeMirror的时候,不管是直接使用 CodeMirror() 还是使用 fromTextArea() ,都可以通过传递第二个参数来配置编辑器。

var myCodeMirror = CodeMirror.fromTextArea(el, {
    // options...
});

options 可以使用的主要参数

value: string | CodeMirror.Doc
编辑器的初始值(文本),可以是字符串或者CodeMirror文档对象(不同于HTML文档对象)。

mode: string | object
通用的或者在CodeMirror中使用的与mode相关联的mime,当不设置这个值的时候,会默认使用第一个载入的mode定义文件。一般地,会使用关联的mime类型来设置这个值;除此之外,也可以使用一个带有name属性的对象来作为值(如:{name: “javascript”, json: true})。可以通过访问CodeMirror.modes和CodeMirror.mimeModes获取定义的mode和MIME。

indentUnit: integer
缩进单位,值为空格数,默认为2 。

extraKeys: object
给编辑器绑定与前面keyMap配置不同的快捷键。

lineNumbers: boolean
是否在编辑器左侧显示行号。

autofocus: boolean
是否在初始化时自动获取焦点。默认情况是关闭的。但是,在使用textarea并且没有明确指定值的时候会被自动设置为true。

要把 textarea 实现成一个支持联想提示的引用下面的文件即可:

<link rel="stylesheet" href="addon/hint/show-hint.css">
<script src="addon/hint/show-hint.js"></script>
<script src="addon/hint/anyword-hint.js"></script>

在开发过程中

注意一:要是代码编辑器是模态框的话,提示及时引用上述文件也提示不出来,原因是层级,提示层没有弹出框和模态框大,需要将show-hint.css的z-index设置的很大即可

注意二:就是多个codeMirror时会相互影响,代码打开会有蒙层覆盖,看不了代码,此时需要每加载一次codeirror需要定时刷新一次,即可解决相互影响问题。

 

转载于:https://www.cnblogs.com/lingwang3/p/7354298.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值