CodeMirror在线代码编辑器使用以及如何取值

摘要:
目前,CodeMirror在线代码编辑器被广泛使用。它支持100多种语言,并且高度可定制。CodeMirror突出了各种编程语言的关键词、函数、变量和其他代码,具有丰富的API和可扩展函数以及多种主题样式。如果您想在页面中嵌入代码编辑区域,CodeMirror是最佳选择。

目前CodeMirror在线代码编辑器在运用还蛮广泛的,支持100多种语言,高度可定制。支持语言有C、C++、C#、Java、Perl、HTML、CSS、PHP、JavaScript、Python、Lua、Go、Groovy、Ruby等。以及diff、LaTeX、SQL、wiki、Markdown等文件格式。CodeMirror为各种编程语言实现关键字、函数、变量等代码高亮显示,丰富的API和可扩展功能以及多个主题样式。如果要在页面中需要嵌入一个代码编辑区,CodeMirror是最佳的选择。

关于下载可以直接到官网上去下载

CodeMirror的官网是:http://codemirror.net/

代码托管在Github上,下载地址:https://github.com/codemirror/CodeMirror/archive/master.zip

下面是需要引入的css

<link href="http://t.zoukankan.com/codemirror/lib/codemirror.css" rel="stylesheet" type="text/css">//必须引入,是CodeMirror的核心样式文件
<link href="http://t.zoukankan.com/codemirror/theme/monokai.css" rel="stylesheet" type="text/css">//是编辑器模板,可以根据需要修改
<link href="http://t.zoukankan.com/codemirror/addon/display/fullscreen.css" rel="stylesheet" type="text/css">//全屏支持样式文件
<script type="text/javascript" src="codemirror/lib/codemirror.js"></script>//需要引入的核心js

页面展示:

<textarea   name="code"></textarea>

关于配置:

 <script>
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
        lineNumbers: true,     // 显示行数
        indentUnit: 4,         // 缩进单位为4
        styleActiveLine: true, // 当前行背景高亮
        matchBrackets: true,   // 括号匹配
        mode: 'htmlmixed',     // HMTL混合模式
        lineWrapping: true,    // 自动换行
        theme: 'monokai',      // 使用monokai模版
    });
</script>  

当然,配置项有很多,以上只是一部分,具体的配置项内容可以参考官网,有很多,可以酌情使用。

接下来就是项目中运用到比较多的情况说明:

  1. 设置代码框的大小
    editor.setSize('800px', '950px'); 
  2. 获取编辑器的内容
    editor.getValue();
    //仅仅单纯获取编辑器的文本内容,不能识别换行及一些特殊符号的转义
  3. 给编辑器赋值
    editor.setValue("");  

以上的几种做法都没办法满足我当时在项目中遇到的问题就是:要取出代码编辑器的内容传给服务端,而且服务端还要将我传的内容再返给我供页面初始化值用,但是因为getValue取出的内容是不能转义甚至不能识别换行,导致报错,所以我要将编辑器取到的内容显示再textarea里面。于是即是:

<textarea   >${item.funAttri!}</textarea>
//因为我用的beetl模板,所以可以直接读取后台穿的值${item.funAttri!}   

先将编辑器设置内容,而这个内容就是服务端传过来的

editor.setValue($("#funAttri").html());

这个时候直接取出编辑器的内容即可:

 editor.save();//同步CodeMirror的数据到textarea(这一步至关重要)
 var funattri = $("#funAttri").val();//直接取出即可,之后可以作为内容再次提交给服务端

好了,以上便是我所遇到的问题,其实最关键的一步就是将value值同步到textarea里面,这样取出的就是html了

免责声明:文章转载自《CodeMirror在线代码编辑器使用以及如何取值》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇百度地图api写一个有标注点有连线的地图基于ffmpeg不同编码方式转码后的psnr对比下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vim宏录制的操作

1:在vim编辑器normal模式下输入qa(其中a为vim的寄存器) 2:此时在按i进入插入模式,vim编辑器下方则会出现正在录制字样,此时便可以开始操作。 3:需要录制的操作完成后,在normal模式下按q则会退出录制,则此时一个宏录制的完整操作则完成 4:在normal模式下按@a则会重复宏录制中的操作...

使用C# 扩展VS的带工具栏的编辑器(翻译)

介绍 这个例子展示了如何使用一个包(Package)来扩展Visual Studio,使之支持一个特定文件类型的编辑器并附带工具箱支持,在这个例子中我们将实现一个 .tbx文件的编辑器以及一个可用于此文档的工具箱项目。 提供一个编辑器工厂类; 文档的序列化和反序列化; 工具箱支持,即从工具箱中拖动一个文本到文档中; 支持源代码控制和只读文件支持。...

解决Geany 编辑器无法导入matplotlib包问题

最近在看《Python编程从入门到实践》这本书,在看到第15章,生成数据时,遇到了一个问题:matplotlib 在Geany编辑器中一直显示找不到matplotlib模块。在网上查看了一些资料后找到了原因。 问题原因 你可以做一个测试,看一下符不符合我说的情况: 重新在终端安装matplotlib,这个时候会提示你已经安装过了: 但是你会发现提示安装的...

在git bush中如何退出vim编辑器

写npm的pakege.json文件的files配置时,如果有不想包含的文件,那就要创建.npmignore文件排除,但windows系统又不允许创建以点开头命名的文件,咋办? 这时候就要用到linux命令行工具创建如git bash。 git bash创建文件和文件夹的命令如下: #创建文件 vi #创建文件 touch #拷贝文件 cp...

Visual Studio Code 不完全使用指南

  介绍 Visual Studio Code 是“巨硬”基于 Electron 开发的一款轻量级编辑器,主打 web 开发,支持的语言包括: JavaScript C# JSON HTML Markdown TypeScript CSS, Sass, Less DockerFile Swift Groovy 不断增加中… 快速导航 VS Co...

WebStorm设置编辑器中的字体大小

启动webStorm之后,点击“FIle"菜单,选择其下的”Settings" 2、在左侧的菜单中选择“Editor/Colors & Fonts/Font 在右侧Scheme Name后侧的”Save as...“按钮,另存一个设置,然后可以修改字体大小和字体。...