CodeMirror是一个用 JavaScript 为浏览器实现的通用文本编辑器。它专门用于编辑代码,并带有多种语言模式和插件 ,可实现更高级的编辑功能。
本教程是基于vue2实现集成,使用vue-codemirror插件
1. 安装
# npm
npm install vue-codemirror -S
# yarn
yarn add vue-codemirror -S
2. 新建组件并引入
<template>
<div>
<codemirror
ref="cm"
v-model="value"
:options="options"
@input="inputChange"
></codemirror>
</div>
</template>
<script>
// 全局引入vue-codemirror
import { codemirror } from "vue-codemirror";
// 引入css文件
import "codemirror/lib/codemirror.css";
// 引入主题 可多个
import "codemirror/theme/ayu-mirage.css";
// 引入语言模式 可多个
import "codemirror/mode/sql/sql.js";
export default {
name: "codemirror",
components: { codemirror },
props: {
value: {
default: ""
}
},
data() {
return {
options: {
// 语言及语法模式
mode: "text/x-sql",
// 主题
theme: "ayu-mirage",
// 显示函数
line: true,
lineNumbers: true,
// 软换行
lineWrapping: true,
// tab宽度
tabSize: 4
}
};
},
methods: {
inputChange(content) {
this.$nextTick(() => {
console.log("content:" + content);
});
}
}
};
</script>
主题引入多个,我们可以实现动态切换主题,语言模式支持多种语言。
options支持的属性很多,上面的例子只使用了几个常用的属性,更多属性请参照官方文档
https://codemirror.net/doc/manual.html#config
关于如何切换主题和语言模式,通过npm安装的vue-codemirror插件,可以在node_modules中找到codemirror文件夹,你想要的都在这里
只需要引入对应的文件,在options中切换即可。
3.最终效果
正文完