Ledit:简单,GPU渲染,没有垃圾文本编辑器

2022-02-25 15:34:25

非常简单的GPU渲染文本编辑器,没有任何废话。以emacs为灵感的钥匙扣。Ledit运行在三大操作系统上:GNU/linux、macOS和Windows。如果您只是想测试编辑器,请从发行版下载它

基本动机只是我想看看OpenGL,做GPU加速的事情,我不打算一开始就创建一个文本编辑器。在开始一点实验之后,我决定将其称为一个小的辅助项目,并实现一个合适的编辑器。

Ledit将正确使用ascii和2字节unicode/UTF-8,3-4字节unicode字符将不起作用。

要构建ledit,您只需要CMake和支持C++17的C/C++编译器。ledit需要GLFW和freetype2,但它们包含在第三方文件夹中。

Ledit使用MSVC构建,不需要像Cgywin这样的unix betewen层。您至少需要一个Windows MsVC C++编译器的最新版本,因为VS安装程序可能会省去必要的组件,所以安装整个VisualStudio更好。然后在文件夹中的CMD中运行:

-src/main。cc:主渲染逻辑和键盘回调。-src/州。h:控制逻辑和状态点。-src/cursor。h:这是除main之外最重要的文件,它管理文本状态、渲染内容和位置。并实现所有用于操作的逻辑组件。-src/shader。h:管理着色器加载。-src/font_atlas。h:字体图谱和宽度计算。-src/shaders。h:内联着色器。-src/highlighting。h:简单的高亮显示引擎。-src/语言。h:包含某些语言的突出显示模式。-src/provider。h:这包含配置解析器和文件夹自动完成和其他相关内容的提供程序。-src/selection。h:用于跟踪选择状态的小结构。-src/la。(cc/h):坐标和RGBA颜色的矢量实现。-第三方:ledit依赖项

ledit可以在你的主目录~/中有一个配置。ledit/config。json。可以为颜色设置以下值(不带注释)。对于字体,有默认值,请将其完全删除或确保其路径有效。

{";颜色";{";注释&#颜色";:[127,127,127,127//如果存在活动模式,在RGBA(0-255)],";默认#颜色";[242,242,242,242,242//文本的默认颜色,在RGBA(0-255)],";关键字#颜色&";[153,25,51,255//如果存在活动模式,在RGBA(0-255)], "特殊颜色";:[51,51,204,255//如果存在活动模式,则特殊单词颜色,在RGBA(0-255)中,";字符串_color";:[51153102255//String literak color,如果存在活动模式,则使用RGBA(0-255)],";背景颜色";:[0,0,0,255//编辑器背景色RGBA(0-255)";选择颜色";:[0,0,0,255//选择区域颜色RGBA(0-255)";突出显示颜色";:[0,0,0,255//活动线背景高亮显示的颜色。RGBA(0-255)";数字_color";:[0,0,160,255//用于数字的颜色。RGBA(0-255)";行_编号_颜色#34;:[0,0,160,255//用于行号RGBA(0-255)]和#34的颜色;状态_color";:[0,0,160,255//用于状态行的颜色,缓冲区信息RGBA(0-255)";迷你缓冲区颜色";:[0,0,160,255//用于小缓冲区的颜色,如搜索、替换、保存新内容等操作。RGBA(0-255)},";窗口透明度";:true//如果允许窗口透明";font#u face";:"/Users/liz3/Library/Fonts/FiraCode Regular。ttf";//TTF字体面路径}

Ledit可以通过传递文件名来使用stdin/out,注意:保存将打印一次,然后退出!

ESC:Escape有两个用途,其行为有点像VIM。如果当前处于取消该操作的微缓冲区(命令操作),escape将再次关闭ledit实例。否则会立即关闭实例。导航:C-a-跳转至线路起点。C-e-跳到终点。C-f-前进一个字符。C-b-反转一个字符。C-p-上升一行。C-n-往下走一行M-f-向前跳一个字。M-b-向后跳一个单词。更通用的导航:C-x-a-跳转到文件开始。C-x-e-跳到文件中的最后一行。C-x-g-请求跳转到一个行号。搜索:C-s将提示输入,然后用enter键搜索该词,区分大小写!操作:C-d-删除光标后面的字符-d-删除下一个包含空格的单词。C-shift-p-将当前行上移C-shift-n-将当前行下移C-w-剪切选择C-r-替换,首先请求搜索,然后请求替换\,使用SHFT-RET替换所有匹配项。C-x-/-如果模式处于活动状态,则对光标行或选定行进行注释或取消注释,不适用于原始文本模式。操作:C-x-s-保存到最后一条路径,如果没有路径,ledit将请求路径。C-x-n-保存到新位置,请注意,这不会覆盖默认保存路径,要覆盖默认路径,请先保存,然后加载。C-x-o-加载新文件,这将替换当前文件,不存在的文件仍将加载,但标记为新文件。C-x-k-在会话中打开的文件(缓冲区)之间切换,注意:再次按下此键将在打开的文件之间旋转。C-z-撤销。M-w/C-C-复制-y/C-v-粘贴空间-打开和关闭选择模式。杂项:C-x-l-切换行号。C-+-增加字体大小-(-)-减少字体大小-x-0-加载新的字体文件,请注意,这样做会将其保存在配置中。C-x-h-切换活动线的高亮显示。C-x-m-切换当前缓冲区的激活模式。C-x-w-如果当前缓冲区不是唯一的,则关闭它,否则使用ESC。