不知道为什么在VScode写好的markdown粘贴到简书上却是纯文本。。
# 介绍
> Ace是一个用JavaScript编写的可嵌入代码编辑器。它与Sublime,Vim和TextMate等本机编辑器的功能和性能相匹配。它可以轻松地嵌入任何网页和JavaScript应用程序中。
- 官网地址:[Ace - The High Performance Code Editor for the Web](https://ace.c9.io/ "Ace - The High Performance Code Editor for the Web")
- Github: [GitHub - ajaxorg/ace: Ace (Ajax.org Cloud9 Editor)](https://github.com/ajaxorg/ace/ "GitHub - ajaxorg/ace: Ace (Ajax.org Cloud9 Editor)")
- Vue版:[GitHub - chairuosen/vue2-ace-editor](https://github.com/chairuosen/vue2-ace-editor "GitHub - chairuosen/vue2-ace-editor")
# 在项目中配置Ace
```javascript
// 将代码模式配置到ace选项
ace.edit(element, {
? ? mode: "ace/mode/javascript",
? ? selectionStyle: "text"
})
// 使用setOptions方法一次设置多个选项
editor.setOptions({
? ? autoScrollEditorIntoView: true,
? ? copyWithEmptySelection: true,
});
// 单独设置setOptions方法
editor.setOption("mergeUndoDeltas", "always");
// 一些选项也直接设置,例如:
editor.setTheme(...)
// 获取选项设置值
editor.getOption("optionName");
// 核心Ace组件包括(editor, session, renderer, mouseHandler)
setOption(optionName, optionValue)
setOptions({
? ? optionName : optionValue
})
getOption(optionName)
getOptions()
```
# API选项
> 以下是目前所有支持的选项的列表。除非另有说明,否则选项值皆为布尔值,可以通过editor.setOption来设置。
#### - editor选项
|? 选项名 | 值类型? | 默认值? | 可选值? | 备注? |
| ------------ | ------------ | ------------ | ------------ | ------------ |
| selectionStyle? |? String | text? | line|text? | 选中样式? |
| highlightActiveLine? | Boolean? | true? | -? | 高亮当前行? |
| highlightSelectedWord? | Boolean? |? true | -? | 高亮选中文本? |
| readOnly? | Boolean? | false? | -? | 是否只读? |
| cursorStyle? | String? |? ace | ace|slim|smooth|wide? | 光标样式? |
| mergeUndoDeltas? | String|Boolean? | false? | always? | 合并撤销? |
| behavioursEnabled? | Boolean? | true? | -? | 启用行为? |
| wrapBehavioursEnabled? | Boolean? | true? | -? | 启用换行? |
| autoScrollEditorIntoView | Boolean? | false? | -? | 启用滚动? |
| copyWithEmptySelection? | Boolean? | true? | -? |? 复制空格 |
| useSoftTabs? | Boolean? | false? |? - | 使用软标签? |
| navigateWithinSoftTabs? | Boolean? |? false | -? | 软标签跳转? |
| enableMultiselect? | Boolean? |? false | -? | 选中多处? |
#### - renderer选项
|? 选项名 | 值类型? | 默认值? | 可选值? | 备注? |
| ------------ | ------------ | ------------ | ------------ | ------------ |
| hScrollBarAlwaysVisible? |? Boolean | false? | -? | 纵向滚动条始终可见? |
| vScrollBarAlwaysVisible? | Boolean? | false? | -? | 横向滚动条始终可见? |
| highlightGutterLine? | Boolean? |? true | -? | 高亮边线? |
| animatedScroll? | Boolean? | false? | -? | 滚动动画? |
| showInvisibles? | Boolean? |? false | -? | 显示不可见字符? |
| showPrintMargin? | Boolean? | false? | -? | 显示打印边距? |
| printMarginColumn? | Number? | 80? | -? | 设置页边距? |
| printMargin? | Boolean|Number? | false? | -? | 显示并设置页边距? |
| fadeFoldWidgets | Boolean? | false? | -? | 淡入折叠部件? |
| showFoldWidgets? | Boolean? | true? | -? |? 显示折叠部件 |
| showLineNumbers? | Boolean? | true? |? - | 显示行号? |
| showGutter? | Boolean? |? true | -? | 显示行号区域? |
| displayIndentGuides? | Boolean? |? true | -? | 显示参考线? |
| fontSize? | Number|String? | inherit? | -? | 设置字号? |
| fontFamily? | String? | inherit? |? | 设置字体? |
| maxLines | Number? | -? | -? | 至多行数? |
| minLines? | Number? | -? | -? |? 至少行数 |
| scrollPastEnd? |? Boolean|Number? | 0? |? - | 滚动位置? |
| fixedWidthGutter? | Boolean? |? false | -? | 固定行号区域宽度? |
| theme? | String? |? - | -? | 主题引用路径,例如"ace/theme/textmate"? |
#### - mouseHandler选项
|? 选项名 | 值类型? | 默认值? | 可选值? | 备注? |
| ------------ | ------------ | ------------ | ------------ | ------------ |
| scrollSpeed? | Number? | - | -? | 滚动速度? |
| dragDelay? | Number? | -? | -? | 拖拽延时? |
| dragEnabled? | Boolean? | true | -? | 是否启用拖动? |
| focusTimout? | Number? | -? | -? | 聚焦超时? |
| tooltipFollowsMouse? | Boolean? | false? | -? | 鼠标提示? |
#### - session选项
|? 选项名 | 值类型? | 默认值? | 可选值? | 备注? |
| ------------ | ------------ | ------------ | ------------ | ------------ |
| firstLineNumber? | Number? | 1 | -? | 起始行号? |
| overwrite? | Boolean? | -? | -? | 重做? |
| newLineMode? | String? | auto | auto|unix|windows? | 新开行模式? |
| useWorker? | Boolean? | -? | -? | 使用辅助对象? |
| useSoftTabs | Boolean? | -? | -? | 使用软标签? |
| tabSize? | Number? | -? | -? | 标签大小? |
| wrap? | Boolean? | - | -? | 换行? |
| foldStyle? | String? | -? | markbegin|markbeginend|manual? | 折叠样式? |
| mode | String? | -? | -? | 代码匹配模式,例如“ace/mode/text" |
#### - 扩展选项
|? 选项名 | 值类型? | 默认值? | 可选值? | 备注? |
| ------------ | ------------ | ------------ | ------------ | ------------ |
| enableBasicAutocompletion? | Boolean? | - | -? | 启用基本自动完成? |
| enableLiveAutocompletion? | Boolean? | -? | -? | 启用实时自动完成? |
| enableSnippets | Boolean? | - | -? | 启用代码段? |
| enableEmmet? | Boolean? | -? | -? | 启用Emmet? |
| useElasticTabstops? | Boolean? | -? | -? | 使用弹性制表位? |