首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

85.精读《手写 SQL 编译器 - 智能提示》

利用 monaco-editor 生态,利用 sql reader 封装 monaco-editor 插件,同时实现 用户 编辑器交互,与 编辑器 语义分析器 间交互。...select | from b; 从语法角度来看,它是错,因为实际是一个不完整语句 "select from b;" 从提示角度来看,它是对,因为这是一个正确输入过程,光标位置再输入一个单词就正确了...之后在 AST 中找到 my_custom_symbol 字符串,对应节点就是光标位置。实际这可以解决大部分问题,除了关键字。...非关键字: 针对非关键字,我们解决方案和用特殊字符串补充类似,但也有不同: 在光标位置插入一个新 Token,这个 Token 类型是特殊光标类型”。...sql-parser 不仅可以生成语法树,还能找到当前光标位置所在语法树节点,找到 SQL 某个语法返回所有字段列表等功能,基于它,甚至可以做 UI 与 SQL 文本互转应用。

3.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 文本编辑器 vim

Linux 文本编辑器 vimVim 编辑器:大多数Linux都会自带文本编辑器。功能强大:代码补全、编译及错误跳转等方便编程功能特别丰富,在程序员中被广泛使用。...功能强大到其官方现在对自己定位是“程序开发工具”Vim 编辑器:三种模式 • 命令模式 • 编辑模式 • 末行模式命令模式• 用vim FILENAME进入之后默认模式 • 可以“上下左右”移动光标...• 可以剪切字符或整行、也可复制、粘贴移动光标:• 方向键或者hjkl• ^和$:快速到所在行开头和末尾(用0也可以到开头)• 30j:向下移动30行(数字+方向进行快速移动)• ctrl+f或b:...-- INSERT --提示) • 其实有多种进入模式(i/a/o/I/A/O),但是记住一种即可 • 按esc键退出该模式 • 在编辑模式下即可正常编辑、修改文本内容末行模式在命令模式下输入一个:...• :s/// 只替换光标所在行第一次Vim 编辑器:vimtutor zh_CN 可以查看帮助文档

1.2K00

那些年我们一起踩过坑——WebIDE 前端札记

之前有用户向我们建议使用 monaco 编辑器,但是更换编辑器会有很多细节需要处理,如果接下来有精力我们可能会换到 monaco。换编辑器也需要很大工作量,这是一个很头疼问题。...这个可能说有点抽象,比如说一个用户在第二个位置插入一个 A 字符,另一个用户也在第二个位置插入一个 B 字符,假设 A 字符先传到服务器,那么通过计算,第一个用户得到补丁操作应该是在第三个位置插入...B 字符,而第二个用户得到是在第二个位置插入 A,最后使得两个人得到结果可以达到同步,这是比较简单操作,通过组合可以实现很复杂协同。...但用户还是不太满意,反馈说输中文时候输入法位置不对,总是在最左上,因为 sh.js 本身隐藏了一个输入框在最上角,解决方法也很简单:让这个输入框位置永远跟随光标位置,每次光标位置移动,就把输入框位置移到光标位置...到了 v3 时候精力旺盛小伙伴觉得那个太重型,想想自己实现一个也不难,就自制了一个国际化组件,实现了很多有趣小功能,比如自动生成语言文件,在每一个文本加了 id 方便后续做自动化测试等等,因为是我们自己做

1.1K40

Linux进阶 01 Linux文本编辑器 vim

今天跨入Linux进阶部分学习!主要包括vim编辑器以及集中生信常用文件格式介绍!...1 vim编辑器是什么大多数Linux都会自带文本编辑器2 vim编辑器三种模式2.1 命令模式用vim FILENAME进入之后默认模式可以“上下左右”移动光标可以剪切字符或整行,也可复制、粘贴...2.1.1 移动光标方向键/hjkl^和$:快速到所在行开头和末尾30j:向下移动30行(数字+方向进行快速移动)ctrl+f/ctrl+b:上下翻页(forward/back)gg:快速回到文档第一行第一个字符...G:快速到文件底部2.1.2 剪切、复制与粘贴x:剪切一个字符10x:连续剪切10个字符 dd:剪切所在行10dd:剪切所在行及向下共10行yy:复制光标所在行10yy:复制所在行及下面10行p:在当前行下面进行粘贴注意区分大小写...s/// 只替换光标所在行第一次3 vimtutorvimtutor zh_CN 可以查看帮助文档

13310

Monaco Editor对标优势—为什么选择Monaco为在线编辑器内核

Monaco Editor 是一款开源在线代码编辑器。它和大热 VSCode 都是微软家娃。...Monaco与VSCode微软之前有个项目叫做Monaco Workbench,后来这个项目变成了VSCode,而Monaco Editor(下文简称monaco)就是从这个项目中成长出来一个web编辑器...,他们很大一部分代码(monaco-editor-core)都是共用,所以monaco和VSCode在编辑代码,交互以及UI几乎是一摸一样,有点不同是,两者平台不一样,monaco基于浏览器...Monaco 是一个用于浏览器中编辑器,始于 2011 年 Erich Gamma 加入微软。后期主要使用在 Visual Studio Online, OneDrive 以及不少内部网站。...参考文章:基于JavaScript代码编辑器比较和选型 https://sq.163yun.com/blog/article/184733100361850880转载本站文章《Monaco Editor

3.6K20

第三章 —- 了解各种 Linux 文本编辑器

R,由命令模式进入输入模式 特点:在文件最下方出现 --INSERT-- --REPALCE-- a:在光标下一个字符之前插入文本 A:在光标所在航模插入文本 i:在光标上一个字符之前插入文本...I:在光标的行首插入文本 o:在光标所在行下插入一行文本 O:在光标所在插入一行文本 r:修改当前光标所在字符 R:替换文本 退出模式:按键 shift + :,由命令模式进入退出模式...(dot) 重复上次更改 复制行命令 命令 操作 yiw 复制当前单词 yw 复制当前光标位置到词末 yy 复制当前行 P 将拉出文本放置在当前光标之后。...此命令类似于 Windows 中黏贴操作 p 将拉出文本放置在当前光标位置前 搜索命令 /:向下搜索 ?...(开启区分大小写) 样式查找指令 命令 操作 fx 在当前行的当前光标位置后查找字符 x Fx 在当前行的当前光标位置前查找字符 x /pattern + Enter 查找包含给定样式下一行 ?

2.4K30

开发一个在线代码对比工具

Monaco Editor Monaco Editor 是 VS Code 中使用开源代码编辑器, 拥有代码高亮和代码自动补全功能,并且内置了一个 Diff Editor。...马上掘金 使用 monaco-editor 创建一个简单代码编辑器 使用 monaco-editor 创建一个简单 Diff 编辑器 Monaco Editor 有 2 种加载方式,分别是 amd...关于 Monaco Editor 在 next.js 中配置,之前有介绍过,大家可以看这篇文章 《在 Next.js 中使用 Monaco Editor》。...好比 Monaco Editor 是一个容器,容器可以设置 Model、切换 Model,比如 vscode 中,每打开一个文件就是一个 Model,文件切换就是切换 model,每个文件都有状态,比如光标位置...代码对比编辑器 GitHub 代码 以上就是本文全部内容,希望这篇文章对大家有所帮助,也可以参考我往期文章或者在评论区交流你想法和心得,欢迎一起探索前端。

2.8K11

vim 编辑器常用命令

Vim是从vi发展出来一个文本编辑器。其代码补完、编译及错误跳转等方便编程功能特别丰富,在程序员中被广泛使用。linux 系统用户最喜欢编辑器。 下面我们就来看看它常用命令集合。...i:在光标插入内容 a:在光标插入内容 o:在下一行插入内容 I:在行首插入内容 A:在行未插入内容 O:找上一行插入内容 esc:进入命令模式。 : :在命令模式下输入 : 进入末行模式。...即使文件没有被修改也强制写入,并更新文件修改时间。 :x:写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。...X:删除当前光标,向后删除 hjkl:移动光标,对应为左下右 H M L:移动光标,对应为,顶部,中间,底部。...v:多行选中,光标所在位置 V:多行选中,整行都会被选中 :向右移动代码 <<:向左移动代码 .

1.3K20

用Rust和React创建一个富文本编辑器

所以我们创建了一个普通React组件,并根据单元格content和formatting生成了富文本内容,然后使用React.createElement()插入实际元素,这些元素只是一个应用了样式...然后,我们添加了必要事件处理程序来捕捉用户互动,这又将再次调用数据模型适当逻辑。 那么用户光标呢?只是另一个我们自己插入小React组件。...例如,让我们再看一下光标导航。一节中例子显示了如何向左和向右移动光标。但是如果用户按了向下箭头,他们光标最终会在哪两个字符之间呢?...这不是一个简单问题,因为保持光标的垂直位置需要测量上面那一行字符位置。但你如何定义什么是 "上面那一行"?无论是content还是formatting都不包含这些信息。...总结 创建你自己文本编辑器是一项艰巨任务,但只要有正确架构和良好规划,它肯定是可以做到。如果你发现自己处于必须选择或开发一个富文本编辑器位置,我们希望你能发现这篇文章有用信息。

2.5K133

编辑器-vi、vim使用

、选择文本3.8、查找替换1、vi简介vi编辑器是Linux和Unix最基本文本编辑器,工作在字符模式下。...由于不需要图形界面,vi是效率很高文本编辑器。尽管在Linux也有很多图形界面的编辑器可用,但vi在系统和服务器管理中功能是那些图形编辑器所无法比拟。...vi编辑器通常被简称为vi,而vi又是“Visual interface”简称。它在Linux地位就像Edit程序在DOS一样。...2.2、编辑模式在命令模式下输入插入命令i(当前位置插入)、a(当前位置后一位置插入) 、o(下一行插入)可以进入文本输入模式。...3、vi基本操纵3.1、进入编辑模式命令含义i和Ii在光标插入,I在行首插入a和Aa在光标插入,A在行末插入o和Oo在光标所在行下一行插入,O在光标所在行一行插入3.2、移动光标命令含义h光标向左移动

1.4K10

手摸手打造类码掘金在线IDE(二)——编辑器

下面高潮开始,主菜 IDE主体部分 码掘金,从结构上来说只有三个部分,分别是编辑器部分,渲染编译器部分,以及 错误提示控制台部分 由于他初心是是为了轻便,简洁,所见即所得, 所以省略了文件系统 那...codemirror5 这也是跟monaco-editor 可以分庭抗礼编辑器,支持语言众多而且接入方便,文档,齐全, 虽然也是英文, 可我们有翻译软件啊 而在,在社区繁荣今天,更是有大佬在他基础做出了专门用于...有很多jym 对这个一块可能还相当陌生,那么我们就来分别对这两个编辑器使用方式来一个简单介绍 monaco-editor monaco-editor 虽然也有vue版本接入 vue-monaco-editor...CodeMirror 是通过 JavaScript 实现文本编辑器。...现在他已经跟新到了codemirror5 vue-codemirror其实就是在他基础做了个vue 封装 接下来我们就直接使用vue这个版本来封装一个属于我们编辑器 用到包相对于monaco-editor

2.5K11

Linux笔记:使用Vim编辑器

目录[-] Vi编辑器是Unix系统早先编辑器,在GNU项目将Vi编辑器移植到开源世界时,他们决定对其作一些改进。...Vim编辑器有两种操作模式: 普通模式; 插入模式 当打开要编辑文件时,Vim编辑器会进入普通模式。在普通模式下,Vim编辑器会将按键解释成命令; 在编辑模式中,按下i键,进入插入模式。...插入模式下,每个按键都将输入到光标位置缓冲区。...上面已经有了删除数据操作,Vim删除数据时,实际它会将数据保存在单独一个寄存器中。可以同p命令来取回数据。 简而言之,用dd删除一行文本,然后把光标移动到某个要放置该行文本位置,之后用p命令。...在输入要查找文本后,按下Enter键,Vim编辑器会有3中回应: 如果光标当前位置之后有你要查找文本,则光标会跳到该文本出现第一个位置(按n键到达下一个); 如果光标当前位置之后没有你要查找文本

1.5K40

Vim——编译器之神

vi是linux中最经典文本编辑器,vi一共有3种工作模式,分别是命令模式,末行模式,编辑模式.打开文件首先进入就是命令模式,是使用vi入口。...D : 删除至行尾 dw : 从光标位置删除到单词末尾 d0 : 从光标位置删除到一行起始位置 d{ : 从光标位置删除到段落起始 d} : 从光标位置删除到段落末尾...ndd :从光标位置向下连续删除n行 11 .复制和剪切: vi 中提供有一个 被复制文本缓冲区 复制 命令会将选中文字保存在缓冲区 删除 命令删除文字会被保存在缓冲区 在需要位置..., 使用 粘贴 命令可以将缓冲对文字插入光标所在位置 y : 复制,两行 yy : 复制一行,nyy复制多行 d : 剪切 dd...15.插入命令[进入编辑模式]: i :在当前字符前插入文本 I : 在行首插入文本 a : 在当前字符后添加文本

97310

vim命令大全

x 删除光标所在位置字符 dd 删除光标所在行 ndd 删除当前行(包括此行)后 n 行文本 dG 删除光标所在行一直到文件末尾所有内容 D 删除光标位置到行尾内容 vim filename 打开或新建一个文件...在对文件进行编辑前,先执行指定命令 i 在当前光标所在位置插入随后输入文本光标文本相应向右移动 I 在光标所在行行首插入随后输入文本,行首是该行第一个非空白字符,相当于光标移动到行首执行...光标停在空行首,等待输入文本 O(大写) 在光标所在行上面插入一行。...光标停在空行行首,等待输入文本 a 在当前光标所在位置之后插入随后输入文本 A 在光标所在行行尾插入随后输入文本,相当于光标移动到行尾再执行 a 命令 /abc 从光标所在位置向前查找字符串 abc...abc 从光标所在为主向后查找字符串 abc n 向同一方向重复上次查找指令 N 向相反方向重复上次查找指定 r 替换光标所在位置字符 R 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长文本内容

1K20

《Linux操作系统编程》第四章 屏幕编程器vi : 了解屏幕编辑器vi概述和基本操作命令

学习要求 了解:屏幕编辑器vi概述 理解:屏幕编辑器vi常用命令 掌握:使用vi编写文本文件 学习方法 ​ 本章主要介绍屏幕编辑器vi概述与常用命令。...需要学生亲自动手实践,在Linux系统使用vi常用命令。...(2) 编辑器vi常用命令 文本输入模式 i 在光标插入文本 I 在光标所在行首插入文本 a 在光标后加入文本 A 在光标所在行尾加入文本 o 在光标所在行下面新加一行 O 在光标所在行上面新加一行...ESC 退出文本输入模式, 返回命令模式 命令模式 ←↓↑→ 光标左下右移动 h j k l 光标左下右移动 ^ 光标从当前位置移到本行行首 $ 光标从当前位置移到本行行尾 + 光标下移一行 -...光标上移一行 空格键 光标右移 退回键 光标左移 删除文本命令 x 删除光标所在字符 dw 删除光标所在词 (word)光标开始到该词结尾部分 D 删除光标所在位置到行尾部分 dd 删除光标所在行

14610

Linux Vi 文本编辑器常用命令

大家好,又见面了,我是你们朋友全栈君。 *Linux Vi 文本编辑器常用命令 ** 引言:在Linux中我们常用文本编辑器有Vi,Vim(Vi增强版)。...按[a]键进入插入模式后,是当前光标所在位置之后开始输入文字; 按[i]键进入插入模式后, 是当前光标所在位置之前开始输入文件; 按[o]键进入插入模式后,是在光标所在位置下一行添加新一行,从行首开始输入文字...; 按[O]键进入插入模式后,是在光标所在位置一行添加新一行,从行首开始输入文字; 按[r]键替换当前光标所在位置字符; 按[R]键可以替换当前光标所在位置之后字符。...光标的下一行开始编辑 shift+o 光标一行开始编辑 9、删除命令 dd 删除一行,可以带个数字,如6dd,表示向下删除6行 d$ 删除光标到行尾内容(也可以使用ctrl+d) d^...shift+p 粘贴到光标位置一行 12、同时打开两个文件 比如:aa.txt ss.txt 打开第一个文件vi aa.txt然后输入下面的命令 :sp ss.txt 此时就在同一个窗口打开另外一个

3.2K30
领券