Ace editor 中文文檔

介紹

Ace是一個(gè)用JavaScript編寫的可嵌入代碼編輯器荣瑟。它與Sublime,Vim和TextMate等本地編輯器的功能和性能相匹配劫谅。它可以輕松地嵌入任何網(wǎng)頁和JavaScript應(yīng)用程序中仙辟。

官網(wǎng)地址:Ace - The High Performance Code Editor for the Web
Github: GitHub - ajaxorg/ace: Ace (Ajax.org Cloud9 Editor)
vue版:GitHub - chairuosen/vue2-ace-editor

快速開始

簡(jiǎn)單使用

<div id="editor" style="height: 500px; width: 500px">some text</div>
<script src="src/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
    var editor = ace.edit("editor");
</script>

設(shè)置主題和語言模式

要更改主題叠国,請(qǐng)為編輯器配置要使用的主題路徑。主題文件將按需加載:

editor.setTheme("ace/theme/twilight");

默認(rèn)情況下冤狡,編輯器為純文本模式悲雳。但是,所有其他語言模式都可以作為單獨(dú)的模塊使用坦胶。語言模式也將按需加載:

editor.session.setMode("ace/mode/javascript");

編輯器狀態(tài)

Ace將所有編輯器狀態(tài)(選擇晴楔,滾動(dòng)位置等)保留在editor.session中, 這對(duì)于制作可切換式編輯器非常有用:

var EditSession = require("ace/edit_session").EditSession
var js = new EditSession("some js code")
var css = new EditSession(["some", "css", "code here"])
// 要將文檔加載到編輯器中,只需這樣調(diào)用
editor.setSession(js)

在項(xiàng)目中配置Ace

// 將代碼模式配置到ace選項(xiàng)
ace.edit(element, {
    mode: "ace/mode/javascript",
    selectionStyle: "text"
})

// 使用setOptions方法一次設(shè)置多個(gè)選項(xiàng)
editor.setOptions({
    autoScrollEditorIntoView: true,
    copyWithEmptySelection: true,
});

// 單獨(dú)設(shè)置setOptions方法
editor.setOption("mergeUndoDeltas", "always");

// 一些選項(xiàng)也直接設(shè)置纪岁,例如:
editor.setTheme(...)

// 獲取選項(xiàng)設(shè)置值
editor.getOption("optionName");

// 核心Ace組件包括(editor, session, renderer, mouseHandler)
setOption(optionName, optionValue)
setOptions({
    optionName : optionValue
})
getOption(optionName)
getOptions()

設(shè)置和獲取內(nèi)容:`

editor.setValue("the new text here"); // 或 session.setValue
editor.getValue(); // 或 session.getValue

獲取選定的文本:

editor.session.getTextRange(editor.getSelectionRange());

在光標(biāo)處插入:

editor.insert("Something cool");

獲取當(dāng)前光標(biāo)所在的行和列:

editor.selection.getCursor();

轉(zhuǎn)到某一行:

editor.gotoLine(lineNumber);

獲取總行數(shù):

editor.session.getLength();

設(shè)置默認(rèn)標(biāo)簽大嗅:病:

editor.getSession().setTabSize(4);

使用軟標(biāo)簽:

editor.getSession().setUseSoftTabs(true);

設(shè)置字體大幸旁觥:

document.getElementById('editor').style.fontSize='12px';

切換自動(dòng)換行:

editor.getSession().setUseWrapMode(true);

設(shè)置行高亮顯示:

editor.setHighlightActiveLine(false);

設(shè)置打印邊距可見性:

editor.setShowPrintMargin(false);

設(shè)置編輯器為只讀:

editor.setReadOnly(true);  // false為可編輯

窗口自適應(yīng)

編輯器僅在resize事件觸發(fā)時(shí)時(shí)調(diào)整自身大小贡定。要想以其他方式調(diào)整編輯器div的大小可都,并且需要調(diào)整編輯器大小,請(qǐng)使用以下命令:

editor.resize()

在代碼中搜索

主要的ACE編輯器搜索功能在 search.js.中定義旋炒。以下選項(xiàng)可用于搜索參數(shù):

  • needle: 要查找的字符串或正則表達(dá)式
  • backwards: 是否從當(dāng)前光標(biāo)所在的位置向后搜索签杈。默認(rèn)為“false”
  • wrap: 當(dāng)搜索到達(dá)結(jié)尾時(shí)答姥,是否將搜索返回到開頭。默認(rèn)為“false
  • caseSensitive: 搜索是否應(yīng)該區(qū)分大小寫尚粘。默認(rèn)為“false”
  • wholeWord: 搜索是否只匹配整個(gè)單詞敲长。默認(rèn)為“false”
  • range: 搜索匹配范圍秉继,要搜索整個(gè)文檔則設(shè)置為空
  • regExp: 搜索是否為正則表達(dá)式尚辑。默認(rèn)為“false”
  • start: 開始搜索的起始范圍或光標(biāo)位置
  • skipCurrent: 是否在搜索中包含當(dāng)前行盔腔。默認(rèn)為“false”

下面是一個(gè)如何在編輯器對(duì)象上設(shè)置搜索的示例:

editor.find('needle',{
  backwards: false,
  wrap: false,
  caseSensitive: false,
  wholeWord: false,
  regExp: false
});
editor.findNext();
editor.findPrevious();

這是執(zhí)行替換的方法:

editor.find('foo');
editor.replace('bar');

這是全部替換:

editor.replaceAll('bar');

editor.replaceAll使用前需要先調(diào)用editor.find('needle', ...)

事件監(jiān)聽

onchange:

editor.getSession().on('change', callback);

selection變化:

editor.getSession().selection.on('changeSelection', callback);

cursor變化:

editor.getSession().selection.on('changeCursor', callback);

添加新的命令和綁定

將指定鍵綁定并分配給自定義功能:

editor.commands.addCommand({
    name: 'myCommand',
    bindKey: {win: 'Ctrl-M',  mac: 'Command-M'},
    exec: function(editor) {
        //...
    }
});

主要配置項(xiàng)

以下是目前所支持的主要選項(xiàng)的列表弛随。除非另有說明撵幽,否則選項(xiàng)值皆為布爾值礁击,可以通過editor.setOption來設(shè)置。

- editor選項(xiàng)
選項(xiàng)名 值類型 默認(rèn)值 可選值 備注
selectionStyle String text line|text 選中樣式
highlightActiveLine Boolean true - 高亮當(dāng)前行
highlightSelectedWord Boolean true - 高亮選中文本
readOnly Boolean false - 是否只讀
cursorStyle String ace ace|slim|smooth|wide 光標(biāo)樣式
mergeUndoDeltas String|Boolean false always 合并撤銷
behavioursEnabled Boolean true - 啟用行為
wrapBehavioursEnabled Boolean true - 啟用換行
autoScrollEditorIntoView Boolean false - 啟用滾動(dòng)
copyWithEmptySelection Boolean true - 復(fù)制空格
useSoftTabs Boolean false - 使用軟標(biāo)簽
navigateWithinSoftTabs Boolean false - 軟標(biāo)簽跳轉(zhuǎn)
enableMultiselect Boolean false - 選中多處
- renderer選項(xiàng)
選項(xiàng)名 值類型 默認(rèn)值 可選值 備注
hScrollBarAlwaysVisible Boolean false - 縱向滾動(dòng)條始終可見
vScrollBarAlwaysVisible Boolean false - 橫向滾動(dòng)條始終可見
highlightGutterLine Boolean true - 高亮邊線
animatedScroll Boolean false - 滾動(dòng)動(dòng)畫
showInvisibles Boolean false - 顯示不可見字符
showPrintMargin Boolean true - 顯示打印邊距
printMarginColumn Number 80 - 設(shè)置頁邊距
printMargin Boolean|Number false - 顯示并設(shè)置頁邊距
fadeFoldWidgets Boolean false - 淡入折疊部件
showFoldWidgets Boolean true - 顯示折疊部件
showLineNumbers Boolean true - 顯示行號(hào)
showGutter Boolean true - 顯示行號(hào)區(qū)域
displayIndentGuides Boolean true - 顯示參考線
fontSize Number|String inherit - 設(shè)置字號(hào)
fontFamily String inherit 設(shè)置字體
maxLines Number - - 至多行數(shù)
minLines Number - - 至少行數(shù)
scrollPastEnd Boolean|Number 0 - 滾動(dòng)位置
fixedWidthGutter Boolean false - 固定行號(hào)區(qū)域?qū)挾?/td>
theme String - - 主題引用路徑挚躯,例如"ace/theme/textmate"
- mouseHandler選項(xiàng)
選項(xiàng)名 值類型 默認(rèn)值 可選值 備注
scrollSpeed Number - - 滾動(dòng)速度
dragDelay Number - - 拖拽延時(shí)
dragEnabled Boolean true - 是否啟用拖動(dòng)
focusTimout Number - - 聚焦超時(shí)
tooltipFollowsMouse Boolean false - 鼠標(biāo)提示
- session選項(xiàng)
選項(xiàng)名 值類型 默認(rèn)值 可選值 備注
firstLineNumber Number 1 - 起始行號(hào)
overwrite Boolean - - 重做
newLineMode String auto auto|unix|windows 新開行模式
useWorker Boolean - - 使用輔助對(duì)象
useSoftTabs Boolean - - 使用軟標(biāo)簽
tabSize Number - - 標(biāo)簽大小
wrap Boolean - - 換行
foldStyle String - markbegin|markbeginend|manual 折疊樣式
mode String - - 代碼匹配模式码荔,例如“ace/mode/text"
- 擴(kuò)展選項(xiàng)
選項(xiàng)名 值類型 默認(rèn)值 可選值 備注
enableBasicAutocompletion Boolean - - 啟用基本自動(dòng)完成
enableLiveAutocompletion Boolean - - 啟用實(shí)時(shí)自動(dòng)完成
enableSnippets Boolean - - 啟用代碼段
enableEmmet Boolean - - 啟用Emmet
useElasticTabstops Boolean - - 使用彈性制表位
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缩搅,一起剝皮案震驚了整個(gè)濱河市硼瓣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亿傅,老刑警劉巖瘟栖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汗捡,死亡現(xiàn)場(chǎng)離奇詭異豹休,居然都是意外死亡敏晤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門男摧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耗拓,“玉大人奏司,你說我怎么就攤上這事「偷螅” “怎么了搪缨?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵副编,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我呻待,道長(zhǎng)队腐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任鱼冀,我火速辦了婚禮悠就,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘荸型。我一直安慰自己炸茧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布改备。 她就那樣靜靜地躺著蔓倍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪默勾。 梳的紋絲不亂的頭發(fā)上聚谁,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天形导,我揣著相機(jī)與錄音,去河邊找鬼。 笑死序愚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芬膝。 我是一名探鬼主播形娇,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼桐早,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了友存?” 一聲冷哼從身側(cè)響起陶衅,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤搀军,失蹤者是張志新(化名)和其女友劉穎勇皇,沒想到半個(gè)月后焚刺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年拖叙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赂乐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挖滤,死狀恐怖浅役,靈堂內(nèi)的尸體忽然破棺而出觉既,到底是詐尸還是另有隱情,我是刑警寧澤瞪讼,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布符欠,位于F島的核電站,受9級(jí)特大地震影響诊沪,放射性物質(zhì)發(fā)生泄漏曾撤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一寄锐、第九天 我趴在偏房一處隱蔽的房頂上張望橄仆。 院中可真熱鬧,春花似錦盆顾、人聲如沸您宪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捏卓。三九已至,卻和暖如春遥金,著一層夾襖步出監(jiān)牢的瞬間蒜田,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工美莫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留色解,地道東北人科阎。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓忿族,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親错英。 傳聞我的和親對(duì)象是個(gè)殘疾皇子隆豹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 不知道為什么,在VScode里編輯好的md献雅,粘貼在簡(jiǎn)書里格式卻不對(duì)塌计,已經(jīng)設(shè)置成md模式了還是不行。就貼圖吧章钾。热芹。也可...
    余以為閱讀 27,596評(píng)論 0 4
  • 1剿吻、介紹 Ace是一個(gè)用JavaScript編寫的可嵌入代碼編輯器。它與Sublime丽旅,Vim和TextMate等...
    呆鼠博客閱讀 3,241評(píng)論 0 1
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,380評(píng)論 0 5
  • 工欲善其事必先利其器邪狞,作為PC客戶端開發(fā)茅撞,Visual Studio是我們每天都要使用的開發(fā)工具,IDE提供了非常...
    小豬啊嗚閱讀 4,649評(píng)論 1 10
  • 概述 在網(wǎng)易云課堂學(xué)習(xí)李南江老師的《從零玩轉(zhuǎn)HTML5前端+跨平臺(tái)開發(fā)》時(shí)剑令,所整理的筆記拄查。筆記內(nèi)容為根據(jù)個(gè)人需求所...
    墨荀閱讀 2,336評(píng)論 0 7