codeMirror是一款十分强大的代码编辑插件,提供了十分丰富的API,最近在项目中用到了这款插件,于是在这里给大家分享下使用方法和心得:codeMirror调用非常方便首先在页面中载入插件CSS及JS文件<link href='/static/codemirror/lib/codemirror.css' rel='sty

codeMirror是一款十分强大的代码编辑插件,提供了十分丰富的API,最近在项目中用到了这款插件,于是在这里给大家分享下使用方法和心得:

codeMirror调用非常方便

首先在页面中载入插件CSS及JS文件

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

同时加载你所需要使用的脚本JS及风格样式CSS文件,如下举例:

<link href="/static/codemirror/theme/3024-night.css" rel="stylesheet">
<link href="/static/codemirror/theme/erlang-dark.css" rel="stylesheet">

<script src="/static/codemirror/mode/shell/shell.js"></script>
<script src="/static/codemirror/mode/perl/perl.js"></script>
<script src="/static/codemirror/mode/python/python.js"></script>


注意文件的放置位置

下一步在html页面中编写好代码:

<!--选择脚本编码代码-->
<div class="controls">
    <input class="ck-code" type="radio" name="script_once_type" id="script_once_type1" checked> shell
     <input class="ck-code" type="radio" name="script_once_type" id="script_once_type2"> bat
     <input class="ck-code" type="radio" name="script_once_type" id="script_once_type3"> python
</div>

<!--选择脚本风格代码-->
<div class="controls">
    <select id='select'>
         <option>default</option>
         <option>3024-night</option>
         <option selected>erlang-dark</option>
    </select>
</div>

<!--textarea-->
<textarea id="script_once_code">
    #!/bin/sh
</textarea>
<textarea id="code2" class="hide">
    #!/usr/bin/env python
    # -*- coding: utf8 -*-
</textarea>


CodeMirror的配置说明

     a.value:设置编辑器的初始编辑值

     b.mode:指定编辑的模式,text/html,javascript等

     c.theme:设定主题样式

           d.indentUnit:设置缩进值,默认为2个单位

           e.smartIndent:是否使用上下文敏感缩进,默认为true

           f.设置一个制表符的宽度,默认为4

           g.是否用N代替N个制表符的宽度,默认为false

           h.electricChars:是否在当前行输入时适当改变其缩进,默认为true

           i.lineWrapping:CodeMirror是否可以滚动,默认为false

           j.lineNumbers:是否显示编辑器行数,默认为false

           k.firstlineNumber:开始计数的行数,默认为1

           m.lineNumberFormatter:function(line:Integer),通过行号返回该行的字符串

           l.fixedGutter:内容是否水平滚动,默认为true

           n.dragDrop:是否可拖拽,默认为false

      

      方法说明

        (1)getValue():获取编辑器文本

        (2)setValue(textString):设置编辑器文本

        (3)undo():撤销一个编辑器

        (4)redo():重做一个编辑器

        (5)setSelection({line:startLineNumber,ch:start_ch},{line:endLineNumber,ch:end_ch});设置一个新的编辑器

        (6)getLine(Integer):获取第n行的文本内容

        (7)replaceRange(str1,{line,ch},{line,ch},str2):替换str1中一部分代码为str2

        (8)lineCount():获取编辑器总行数

        (9)replaceSelection(str1,str2):替换所选内容


var editor = CodeMirror.fromTextArea($("#script_once_code")[0], { //script_once_code为你的textarea的ID号
    lineNumbers: true,//是否显示行号
    mode:"shell", //默认脚本编码
    lineWrapping:true, //是否强制换行
});
//选择界面风格JS
$('#select').change(function(){
     var theme = $('#select').val();
         editor.setOption("theme", theme); //editor.setOption()为codeMirror提供的设置风格的方法
 }); 

//选择脚本类型JS
var txt1=$("#script_once_code").val();
var txt2='';
var txt3=$("#code2").val();
$(".ck-code").click(function(){
       var txt=editor.getValue(); //editor.getValue()获取textarea中的值
       var lang=$(this).prop("id");
       if(lang=="script_once_type1") {
               editor.setOption("mode","shell");//editor.setOption()设置脚本类型
                   editor.setValue(txt1);// editor.setValue()设置textarea中的值
       }
       else if(lang=="script_once_type2") {
               editor.setOption("mode","perl");
               editor.setValue(txt2);
       }
       else {
               editor.setOption("mode","python");
               editor.setValue(txt3);
    
       }
 });

最终界面如下:

codeMirror插件使用讲解

如需配置更多参数,可以访问codeMirror插件官网:http://codemirror.net/ 查看其配置文档。


上一篇:Javascript 文件的上传 分段读取文件 FileReader

下一篇:一组PHP可逆加密解密算法

评论列表
发表评论
称呼
邮箱
网址
验证码(*)
热评文章
相关阅读