使用 CodeMirror 打造屬于自己的帶高亮顯示的在線代碼編輯器_網頁編輯器

來源:腳本之家  責任編輯:小易  

呂老二 2009-05-15 01:15一般說到前打,大都是用長竿4,5米到6.3米一類,這種大都是用在磯上前打而用,而在日本名古屋一帶有發展出另一套短竿前打的方式,竿長只有2.1米到3米之間而已,這是專門在堤防或沿岸大石上對付黑鯛這一類魚來堤下或大巖石下琢食附在石壁上的貝類的獨特釣法,此種釣法以往是漁民在休魚期間或者風浪大不能出海時,只好在港口岸邊獲取漁獲的方法之一,慢慢的由于釣法獨特又具有相當技巧,而漸漸被釣魚人所喜愛和推崇前打竿竿先超細,導線環也超小,只是整個竿長就短了許多,一般都多在2.1米到3米之間,單手拿一天下來也不會累,因為前打釣法是人找魚,而不是魚找人,所以要常常走動換釣點,再加上要有些誘魚抖竿的動作,所以要愈輕愈好線輪,釣友們又叫餅仔輪,正式應該叫鼓式卷線器,為什麼前打要用這種輪呢,前面說到前打有相當的技巧,很多時候要用到半手感的方式,也就是另一手拉出一段線,配合竿子抖動而放線,讓魚餌產生誘魚的動作,再者在黑鯛這類魚吃餌敏感時,還可以送線來讓魚兒失去警戒心,如果用紡車式的輪在操作上可能就沒有這麼方便了,弄不好還會炸米粉前打的釣組特點就是不用導環,這是為了更加準確掌握魚訊,能直接準確反應魚的咬餌情況,而且咬鉛也極為接近魚鉤,這樣才能感覺到魚餌接觸到了海底,才能準確控制釣層個人認為前打竿同路亞竿和磯竿 用法沒什么太大區別關鍵是能釣上魚,那就是正確的方法www.anxorj.tw防采集請勿采集本網。

前提

寫這個的目的是因為之前項目里用到過 CodeMirror,覺得作為一款在線代碼編輯器還是不錯,也看到過有些網站用到過在線代碼編輯,當然我不知道他們是用什么做的,這里我把公司項目里用到的那部分抽出來,單獨寫篇博客,并把抽出來的那部分代碼提交到 GitHub 去(地址),以防日后可能會再次用到(沒準畢業設計里可能用的到)。

這里的android source是我用repo sync從github上mirror下來的android源代碼。4.3 編寫Makefile 利用上面的make_android,寫Makefile: to make x86 version of code,run:\"make X86=1 ifdef X86 CC=gcc

簡單介紹

首先我們要知道生銹的原因,也就是鐵,水,碳的反應,一般的刀都是鐵碳的混合物,所以我們不能防止這兩個東西,所以只能防水,所以呢,你可以放在干燥的地方,或者放在石灰里面,干燥劑里面

CodeMirror 是一款在線的支持語法高亮的代碼編輯器。官網: http://codemirror.net/

那是第一臺使用了漂亮的印刷字體的電腦。如果我當時沒有退學,就不會有機會去參加這個我感興趣的美術字課程,Mac就不會有這么多豐富的字體,以及賞心悅目的字體間距。那么現在個人電腦就不會有現在這么美妙

可能光看官網,第一眼覺得那些在線編輯器有點丑,反正第一眼給我的感覺就是這樣子,但是經過自己的細調,也能打造出一款精美的在線代碼編輯器。

最好使用一些常用的輸入法如搜狗,微軟等。例如我現在的,拼音打“pai”,則: 然后輸入3選中即可。同理,輸入一些希臘字母的拼音讀音也可以見到相印的選項,如: 打α: 第3個即是。還有不懂

官網可以把它下載下來。

一般正常沒有經過專業訓練的人,1分鐘打字大概50個左右,稍快一點的能達到80左右;后面累的時候,速度可能會稍慢一點,所以,大概3個小時左右;

下載后,解壓開得到的文件夾中,lib 下是放的是核心庫和核心 css,mode 下放的是各種支持語言的語法定義,theme 目錄下是支持的主題樣式。一般在開發中,添加 lib 下的引用和 mode 下的引用就夠了。

如何使用

下面兩個是使用 Code Mirror 必須引入的:

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

接下來要引用的就是在 mode 目錄下編輯器中要編輯的語言對應的 js 文件,這里以 Groovy 為例:

<!--groovy代碼高亮--><script src="codemirror-5.31.0/mode/groovy/groovy.js"></script>

如果你想讓 Java 代碼也支持代碼高亮,則需要引入我從網上下載下來的 clike.js(我已經放到我的 GitHub 去了)

<!--Java代碼高亮必須引入--><script src="codemirror-5.31.0/clike.js"></script>

引用的文件用于支持對應語言的語法高亮。

然后前面說了第一次進入 Code Mirror 官網,覺得那些編輯器比較丑,那可能是主題比較丑,我這里推薦一款還不錯的主題,只需按照如下引入即可:

<!--引入css文件,用以支持主題--><link rel="stylesheet" href="codemirror-5.31.0/theme/dracula.css" rel="external nofollow" />

如果你還想讓你的編輯器支持代碼行折疊,請按照如下進行操作:

<!--支持代碼折疊--><link rel="stylesheet" href="codemirror-5.31.0/addon/fold/foldgutter.css" rel="external nofollow" /><script src="codemirror-5.31.0/addon/fold/foldcode.js"></script><script src="codemirror-5.31.0/addon/fold/foldgutter.js"></script><script src="codemirror-5.31.0/addon/fold/brace-fold.js"></script><script src="codemirror-5.31.0/addon/fold/comment-fold.js"></script>

是不是這樣引入就好了呢,當然不是啦

創建編輯器

在實際項目中,一般都不會直接把 body 整個內容作為編輯器的容器。而最常用的,是使用 textarea。這里我在 里使用個 textarea,

<!-- begin code --><textarea class="form-control" id="code" name="code"></textarea><!-- end code-->

接下來就是創建編輯器了。

//根據DOM元素的id構造出一個編輯器var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});

是不是有點單調?

沒錯,我還可以在里面給他設置些屬性:(充分利用我一開始引入的那些文件)

mode: "text/groovy", //實現groovy代碼高亮mode: "text/x-java", //實現Java代碼高亮lineNumbers: true,//顯示行號theme: "dracula",//設置主題lineWrapping: true,//代碼折疊foldGutter: true,gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"],matchBrackets: true,//括號匹配//readOnly: true, //只讀

如果需要查看更多屬性,可以去官網查找,目前我只用到這些屬性!

下面也列舉些吧:

indentUnit: integer

縮進單位,值為空格數,默認為2 。

smartIndent: boolean

自動縮進,設置是否根據上下文自動縮進(和上一行相同的縮進量)。默認為true。

tabSize: integer

tab字符的寬度,默認為4 。

indentWithTabs: boolean

在縮進時,是否需要把 n*tab寬度個空格替換成n個tab字符,默認為false 。

electricChars: boolean

在輸入可能改變當前的縮進時,是否重新縮進,默認為true (僅在mode支持縮進時有效)。

specialChars: RegExp

需要被占位符(placeholder)替換的特殊字符的正則表達式。最常用的是非打印字符。默認為:/[\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/。

specialCharPlaceholder: function(char) → Element

這是一個接收由specialChars選項指定的字符作為參數的函數,此函數會產生一個用來顯示指定字符的DOM節點。默認情況下,顯示一個紅點(•),這個紅點有一個帶有前面特殊字符編碼的提示框。

rtlMoveVisually: boolean

Determines whether horizontal cursor movement through right-to-left (Arabic, Hebrew) text is visual (pressing the left arrow moves the cursor left) or logical (pressing the left arrow moves to the next lower index in the string, which is visually right in right-to-left text). The default is false on Windows, and true on other platforms.(這段完全不曉得搞啥子鬼)

keyMap: string

配置快捷鍵。默認值為default,即 codemorrir.js 內部定義。其它在key map目錄下。

extraKeys: object

給編輯器綁定與前面keyMap配置不同的快捷鍵。

lineWrapping: boolean

在長行時文字是換行(wrap)還是滾動(scroll),默認為滾動(scroll)。

lineNumbers: boolean

是否在編輯器左側顯示行號。

firstLineNumber: integer

行號從哪個數開始計數,默認為1 。

lineNumberFormatter: function(line: integer) → string

使用一個函數設置行號。

gutters: array

用來添加額外的gutter(在行號gutter前或代替行號gutter)。值應該是CSS名稱數組,每一項定義了用于繪制gutter背景的寬度(還有可選的背景)。為了能明確設置行號gutter的位置(默認在所有其它gutter的右邊),也可以包含CodeMirror-linenumbers類。類名是用于傳給setGutterMarker的鍵名(keys)。

fixedGutter: boolean

設置gutter跟隨編輯器內容水平滾動(false)還是固定在左側(true或默認)。

scrollbarStyle: string

設置滾動條。默認為”native”,顯示原生的滾動條。核心庫還提供了”null”樣式,此樣式會完全隱藏滾動條。Addons可以設置更多的滾動條模式。

coverGutterNextToScrollbar: boolean

當fixedGutter啟用,并且存在水平滾動條時,在滾動條最左側默認會顯示gutter,當此項設置為true時,gutter會被帶有CodeMirror-gutter-filler類的元素遮擋。

inputStyle: string

選擇CodeMirror處理輸入和焦點的方式。核心庫定義了textarea和contenteditable輸入模式。在移動瀏覽器上,默認是contenteditable,在桌面瀏覽器上,默認是textarea。在contenteditable模式下對IME和屏幕閱讀器支持更好。

readOnly: boolean|string

編輯器是否只讀。如果設置為預設的值 “nocursor”,那么除了設置只讀外,編輯區域還不能獲得焦點。

showCursorWhenSelecting: boolean

在選擇時是否顯示光標,默認為false。

lineWiseCopyCut: boolean

啟用時,如果在復制或剪切時沒有選擇文本,那么就會自動操作光標所在的整行。

undoDepth: integer

最大撤消次數,默認為200(包括選中內容改變事件) 。

historyEventDelay: integer

在輸入或刪除時引發歷史事件前的毫秒數。

tabindex: integer

編輯器的tabindex。

autofocus: boolean

是否在初始化時自動獲取焦點。默認情況是關閉的。但是,在使用textarea并且沒有明確指定值的時候會被自動設置為true。

dragDrop: boolean

是否允許拖放,默認為true。

allowDropFileTypes: array

默認為null。當設置此項時,只接收包含在此數組內的文件類型拖入編輯器。文件類型為MIME名稱。

cursorBlinkRate: number

光標閃動的間隔,單位為毫秒。默認為530。當設置為0時,會禁用光標閃動。負數會隱藏光標。

cursorScrollMargin: number

當光標靠近可視區域邊界時,光標距離上方和下方的距離。默認為0 。

cursorHeight: number

光標高度。默認為1,也就是撐滿行高。對一些字體,設置0.85看起來會更好。

resetSelectionOnContextMenu: boolean

設置在選擇文本外點擊打開上下文菜單時,是否將光標移動到點擊處。默認為true。

workTime, workDelay: number

通過一個假的后臺線程高亮 workTime 時長,然后使用 timeout 休息 workDelay 時長。默認為200和300 。(完全不懂這個功能是在說啥)

pollInterval: number

指明CodeMirror向對應的textarea滾動(寫數據)的速度(獲得焦點時)。大多數的輸入都是通過事件捕獲,但是有的輸入法(如IME)在某些瀏覽器上并不會生成事件,所以使用數據滾動。默認為100毫秒。

flattenSpans: boolean

默認情況下,CodeMirror會將使用相同class的兩個span合并成一個。通過設置此項為false禁用此功能。

addModeClass: boolean

當啟用時(默認禁用),會給每個標記添加額外的表示生成標記的mode的以cm-m開頭的CSS樣式類。例如,XML mode產生的標記,會添加cm-m-xml類。

maxHighlightLength: number

當需要高亮很長的行時,為了保持響應性能,當到達某些位置時,編輯器會直接將其他行設置為純文本(plain text)。默認為10000,可以設置為Infinity來關閉此功能。

viewportMargin: integer

指定當前滾動到視圖中內容上方和下方要渲染的行數。這會影響到滾動時要更新的行數。通常情況下應該使用默認值10?梢栽O置值為Infinity始終渲染整個文檔。注意:這樣設置在處理大文檔時會影響性能。

如果你要設置代碼框的大小該怎么做呢?

editor.setSize('800px', '950px'); //設置代碼框的長寬

另外,如果你想給代碼框賦值,該怎么辦呢?

editor.setValue(""); //給代碼框賦值

editor.getValue(); //獲取代碼框的值

如果你再想在其他地方設置新的屬性,可以像下面這樣寫:

editor.setOption("readOnly", true); //類似這種

總結

上面就大概講了下 Code Mirror 怎么使用,那么我們來看看效果吧

我自我感覺還是可以的哈!

里面所有涉及的代碼在 GitHub 里可以下載:https://github.com/zhisheng17/CoderBlog/tree/master/CodeMirror

文章原創,轉載務必請注明原創地址

前打竿在正常垂釣時,最好把輪子的泄力鎖緊一些,以調到大力提竿刺大魚(通常指一公斤以上的魚)不出線或者少許出線為宜,但是有些輪子的鎖緊力有限,若在3米以上的深水垂釣,提竿刺魚時無論如何也會少許出線,不過這個影響不大。中魚后,若魚不大,則不需調整泄力,就當是臺釣竿溜魚了;若感覺魚比較大,則需把泄力迅速調松一些,魚要線時竿子前送,讓線輪出一部分線后再準確判斷出魚的大小。前打竿,釣魚竿的一種,多種長度,可調式定位竿,可滿足釣者對不同水域、不同釣點的多種需求。一般說到前打,大都是用長竿4,5米到6.3米一類,這種大都是用在磯上前打而用,而在日本名古屋一帶有發展出另一套短竿前打的方式,竿長只有2.1米到3米之間而已,這是專門在堤防或沿岸大石上對付黑鯛這一類魚來堤下或大巖石下琢食附在石壁上的貝類的獨特釣法,此種釣法以往是漁民在休魚期間或者風浪大不能出海時,只好在港口岸邊獲取漁獲的方法之一,慢慢的由于釣法獨特又具有相當技巧,而漸漸被釣魚人所喜愛和推崇內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • fckeditor的幾點修改小結
  • fckeidtor 自動統計輸入字符個數(ie)
  • javascript 在線文本編輯器實現代碼
  • tinymce 中文手冊 在線手冊與下載
  • ckeditor插件開發簡單實例
  • asp.net fckeditor 2.6.3 配置說明
  • 百度ueditor修改右下角統計字數包含html樣式
  • fckeditor 在chrome中不顯示問題
  • 讓 fckeditor 支持多用戶web環境(以php為例)
  • 瀏覽器執行history.go(-1) fckeditor編輯框內顯示html源代碼的解
  • 前打竿的使用方法是什么?
  • 前打桿使用方法
  • 上古卷軸5 怎么安裝,我用DAEMON Tools加載鏡像,然后Setup.exe ,但是要輸入product code,這個哪里有?
  • 索尼PSP3000的使用說明,要簡體的中文。! 不要推薦什么網站給我看的,我只要現打。
  • 安卓PREBUILT
  • 自己做了把小刀,怎么做防銹處理?不要打油,我經常使用的。
  • 史蒂夫.喬布斯05年在斯坦福大學畢業典禮上的演講稿。謝謝
  • 怎樣使用電腦鍵盤打出數學上的“派”
  • 一般使用電腦的人,手打一萬字,需要多久
  • 鞋廠打釘怎么使用
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全javascriptasp.netphp編程ajax相關正則表達式asp編程jsp編程編程10000問css/htmlflex腳本加解密web2.0xml/rss網頁編輯器相關技巧安全相關網頁播放器其它綜合dart首頁網頁編輯器fckeditor的幾點修改小結fckeidtor 自動統計輸入字符個數(ie)javascript 在線文本編輯器實現代碼tinymce 中文手冊 在線手冊與下載ckeditor插件開發簡單實例asp.net fckeditor 2.6.3 配置說明百度ueditor修改右下角統計字數包含html樣式fckeditor 在chrome中不顯示問題讓 fckeditor 支持多用戶web環境(以php為例)瀏覽器執行history.go(-1) fckeditor編輯框內顯示html源代碼的解19款javascript富文本網頁編輯器免費開源百度編輯器(ueditor)使用ewebeditor 輯器按鈕失效 ie8下eckeditor/fckeditor 使用 ckedit徹底解決ewebeditor網站后臺不能解決fckeditor在ie10、ie11下的不javascript 在線文本編輯器實現代asp.net+fckeditor上傳圖片顯示叉修改fckeditor的文件上傳功能步驟頁面嵌入windows media player播fckeditor + syntaxhighlighter 讓代碼高javascript開發隨筆3 開發iframe富文本編php中ckeditor和ckfinder配置問題小結javascript 網頁編輯框及拖拽圖片的問題使用 codemirror 打造屬于自己的帶高亮顯discuz論壇的ubb編輯器(增加靈活調用,支discuz論壇的ubb編輯器(增加靈活調用,支fckediter javascript事件函數代碼fck判斷內容是否為空(如果只是去空格,那fckeditor編輯器內容長度限制統計實現方法
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载