linux终端怎么设置monaco,Monaco Editor 使用指南

为什么要写这篇文章?

最近开发了一个简单的在线代码编辑器,基于 Monaco Editor 实现,没有了解过 Monaco 的人可能不知道,我们常用的 VS Code 也是基于它实现的~

回到正题,Monaco Editor 有一份完整的官方文档,那为什么还要写这个文章?因为官方文档是在是太难用了,api 难找不说,找到了也是看得云里雾里,可能是我查阅的姿势不对吧,欢迎有文档使用经验的朋友在评论中指教~

话不多说,下面开始总结我在开发中的常用功能。

开始使用

我使用的是 Vue 版本的包 monaco-editor-vue,使用方式如下:

theme="vs-dark"

language="javascript"

:editorMounted="onEditorMounted"

:options="options"

@change="onChange"

>

export default {

name: "App",

components: {

MonacoEditor

},

data() {

return {

options: {

value: '', // 初始值

foldingStrategy: 'indentation', // 代码可分小段折叠

automaticLayout: true, // 自适应布局

overviewRulerBorder: false, // 不要滚动条的边框

autoClosingBrackets: true,

tabSize: 2, // tab 缩进长度

minimap: {

enabled: false, // 不要小地图

},

},

}

},

methods: {

onChange(value) {

console.log(value);

}

onEditorMounted(editor, monaco) {

window.editor = editor

window.monaco = monaco

},

}

};

复制代码

常用 api

editor.getValue()

获取编辑器中的所有文本,并生成一个字符串返回,会保留所有信息(换行、缩进、注释等等)。

editor.getSelection()

获取编辑器中被选中文案的 range ,返回一个对象,如下:

{

startLineNumber: 0,

startColumnNumber: 0,

endLineNumber: 0,

endColumnNumber: 0,

}

复制代码

editor.getModel()

获取编辑器当前的 textmodel,一般不会直接使用,通过 textmodel 可以对文本各种操作。

editor.getModel().findMatches(str|regexp)

功能和 “⌘ + F” 一致,通过字符串或正则表达式查找编辑器内匹配的文本,并返回匹配文本 range 的集合。

editor.getModel().getValueInRange(range)

通过 range 获取范围内的文本,返回一个字符串。

editor.getModel().getLinesContent(lineNumber)

如果传入 lineNumber,则返回对应行的文本字符串,不传参则返回所有行的文本字符串的集合。

editor.executeEdits()

在指定位置插入代码,跟 editor.setValue() 不同的地方是,可以用 “⌘ + Z” 撤销输入。

editor.executeEdits('insert-code', [

{

range: {

startLineNumber,

startColumn,

endLineNumber,

endColumn,

},

text,

},

])

复制代码

editor.addAction()

在右键菜单里增加一栏自定义的操作。

this.editor.addAction({

id: '', // 菜单项 id

label: '', // 菜单项名称

keybindings: [this.monaco.KeyMod.CtrlCmd | this.monaco.KeyCode.KEY_J], // 绑定快捷键

contextMenuGroupId: '9_cutcopypaste', // 所属菜单的分组

run: () => {}, // 点击后执行的操作

})

复制代码

monaco.editor.setModelMarkers()

在编辑器中用波浪线标出错误提示。

monaco.editor.setModelMarkers(editor.getModel(), 'owner', [

{

startLineNumber,

startColumn,

endLineNumber,

endColumn,

message, // 提示文案

severity: monaco.MarkerSeverity.Error, // 提示的类型

},

])

复制代码

招聘

微信支付招聘前后端开发,欢迎推荐,简历可发送到 timorliang@tencent.com ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux c实现线程超时退出,c – 如何在另一个线程的超时内唤醒select()

根据“男人选择”信息:"On success, select() and pselect() return the number of file descrip‐tors contained in the three returned descriptor sets which may be zeroif the timeout expires before anything interesting happens. On error,-1 is ret…

linux中var的作用,linux中var是什么意思

在搭建Kubernetes集群过程中,安装了kube-dns插件后,运行一个ubuntu容器,发现容器内无法解析集群外域名,一开始可以解析集群内域名,一段时间后也无法解析集群内域名。$ nslookup kubernetes.default Server: 10.99.0.2 …

linux redis 主从配置,redis集群(主从配置)

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操 作,而且这些操作都是…

telnet入侵linux,教你入侵RedHatLinux

此文的目的不在于教人入侵,而是为了提高自身的技术和加强网络管理员的安全防范意识。仅此而已!粗心大意的网络管理员应该明白:由于你们一个小小的操作失误可能会导致整个网络全面沦陷!本文主要是围绕LPD:网络打印服务的攻击而进行的。首先确定目标&#…

linux telnet.class,Linux telnet简单实用方法

语法telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]参数-a 企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。-e 跳过字符来进入 telnet 客户提示。-f 客户端登录的文件名-l 指定远程系统上登录用的用户名称。要求远程系统支…

linux查找文件名赋值给变量,Linux平台从文件中查找字符赋值于变量

以telnet方式登录Linux主机,在默认目录下用命令创建一个包含DUT wanIP的文本文件。[root] echo wanIP88.0.100.253 > ./wanIP.txt在默认目录下创建包含以下内容的shell脚本。在实际操作中,可能需要利用命令执行多条相同的命令。在命令后面加上"&…

linux两个数字正则,正则表达式-Linux readelf显示具有不同数字系...

我正在研究ELF文件中的一些对象,并为此目的使用了readelf.这个readelf样本显示了第3列上对象的大小(字节),在大型物体上,readelf以十六进制而不是dec打印,这打断了我的尺寸排序尝试. (排序忽略十六进制值)Num: Value Size Type Bind Vis Ndx Name1369: 808ec6e8 2048 OBJECT LO…

c++语言成绩统计系统数组,急求!!!关于学生成绩管理系统的C++ 结构体数组...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼scanf("%d",&p->data.cgrade);getchar();printf("请你输入数学成绩:");scanf("%d",&p->data.mgrade);getchar();printf("请你输入英语成绩:");scanf("%d",&p…

c语言中实现自动平移,c语言实现图像的旋转与平移

yyy(4) ty≥height,图象完全移出了屏幕,不用做任何处理。这种做法利用了位图存储的连续性,即同一行的象素在内存中是相邻的。利用 memcpy函数, 从(x ,y )-x )处,拷 0 0 点开始,一次可以拷贝一整…

c语言编写电子秒表程序,电子秒表C程序.doc

电子秒表C程序电子秒表程序#include#include#define uchar unsigned char#define uint unsigned intuchar code segtab[]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0x8c,0xff};uchar dbuf[3]{0,0,0};uint count;uchar sec;uchar…

c语言星空程序,C语言实现动态星空

1、/ 编译环境:Visual C 6.0,EasyX 2014冬至版/ e a s y x . c n/#include #include #include #define MAXSTAR 200/ 星星总数struct STARdoublex;inty;doublestep;intcolor;STAR starMAXSTAR;/ 初始化星星void InitStar(int i)stari.x 0;stari.y rand…

c语言stanf,stanf

1、很多问题的答案只能是“是”或“否”,但很多人总是通过说“我不告诉你”或者“我不知道”来逃避。2、假的事情总是显得过于巧合,过于圆满,以至于最后被揭穿。生活中的事情要都那么完美就不会有那么多人不快乐了。3、“肯定”表示有90&…

c语言循环数组赋值,for循环里边给数组赋值的难题

[Quote]/* E5.4 */#include int main(void){double data[12][5];int i0; //总共有多少个数字double row2.0; //初始数字for(i0;i<11;i){data[i][0]row;printf(“\n%d\t%.2f”,i,data[i][0]);rowrow0.1;}return 0;}[/QUOTE]我是C的初学者&#xff0c;这个程序本身没有问题&…

用c语言 c 做8位数奇校验,计算机硬件技术基础网上作业及答案

第一章概述1&#xff0e;下列叙述错误的是()A&#xff0e;目前大多数计算机结构仍属冯诺依曼结构B&#xff0e;计算机的工作原理基于“程序存储和控制”C&#xff0e;计算机的速度取决于CPU的主频&#xff0c;主频高的CPU速度快D&#xff0e;计算机系统包括硬件、软件两部分2&a…

c语言元素插入数组并排序,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼前面已经有一道类似的题目为这道题做铺垫&#xff0c;我已经做出来啦。前面的题目是这样的&#xff1a;用选择法对10个数进行排序。我的做法&#xff0c;就是一个个对比扫描&#xff0c;从左到右递增。代码如下&#xff1a;#includ…

linux mpeg-4,嵌入式MPEG-4解码系统的设计与实现,嵌入式MPEG-4解码系统,嵌入式Linux,视频码流,P...

介绍了一种嵌入式高图像质量的MPEC-4视频流解码系统。该系统以嵌入式Linux作为操作系统&#xff0c;采用硬解码方式&#xff0c;把IDE接口设备或网络端口输入的MPEC-4视频码流(ES、PS和TS)转换成PAL&#xff0f;NTSC制式的电视信号输出。重点讨论了系统控制和MPEG-4解码部分的设…

android 手机壁纸源码,Android工程实现换壁纸功能【附源码】

最近工作要实现换壁纸小功能,将代码做成demo发出来没有采用zip格式换肤,因为只是更换一张图片背景1.将三张图放入drawable-hdpi,我放的是480*800的2.用sharedPreference存取皮肤的id,以便于下次启动的时候根据id来选择用哪个皮肤,在onresume()里刷新皮肤3.存到sharedPreference…

android webview 加载本地,webview加载本地资源的各种尝试

1.webview 打开sd卡上的静态html文件 &#xff0c;js文件既然放在assets文件夹下能找到&#xff0c;那能通过放在sd卡&#xff0c;能加载吗&#xff1f;答&#xff1a;事实证明&#xff0c;是没有用的。2.既然能拿到html的数据&#xff0c;那我们是不是重写html的script的tag的…

android 遍历sdcard,Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法...

本文实例讲述了Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;private void CopyAssets(String assetDir, String dir) {String[] files;try {// 获得Assets一共有几多文件files this.getResourc…

apple手表android手机,Apple Watch 4发布了,安卓手机用户如何选择呢?

Apple Watch 4发布了&#xff0c;安卓手机用户如何选择呢&#xff1f;2018年09月13日 17:40作者&#xff1a;黄页编辑&#xff1a;黄页分享一年一度的“科技界春晚”苹果新品发布在今天凌晨举行。苹果带来了新一代的智能手表——Apple Watch Series 4系列。作为“课代表”,科技…