国产编辑器EverEdit - 兼具小巧、灵活、强大的语法着色管理

1 设置-语法着色

1.1 应用场景

  EverEdit虽然已经内置了大量的语法着色文件,但仍然不能覆盖所有的行业,如果您正在工作的行业特殊文件没有被EverEdit收录,您可以自行编写语法着色文件,并达到和主流编程语言一样的显示和辅助效果。

  本文以作者日常使用的awk语言为例,介绍如何编写自己行业的语法着色文件。

1.2 准备工作

在编写语法文件前,先思考以下几个问题

  • 文件扩展名 必选:源文件使用什么扩展名? 是否没有扩展名?
  • 是否有定制工具 可选:使用特定的可执行程序对源文件进行编译/解释/调试?
  • 是否有模式工具 可选:模式工具是对特定的源文件类型定制的一组工具集合
  • 如何分析大纲 可选:使用正则表达式简单提取函数名?还是使用ctags分析?或者自己编写分析脚本?
  • 定义哪些代码片段 可选:代码片段是一类小段代码集合,具有高复用性,可以提高工作效率。参考:代码片段管理
  • 关键字清单 必选:关键字、内置函数、内置变量/宏、关键字是否大小写敏感
  • 括号匹配 可选:(), \[\], {}等。
  • 注释规则 可选:行注释、块注释规则。
  • 字符串规则 可选:引号/单引号或其他特殊规则。
  • 代码折叠规则 可选:代码折叠开始规则、代码折叠结束规则。

1.3 使用方法

1.3.1 基本配置

  1. 步骤1 :选择主菜单工具 -> 设置 -> 语法着色,弹出如下窗口

  2. 步骤2 :单击添加按钮,并进行参数设置

  • 标题:设置语法文件名称,比如:AWK
  • 语法文件:语法文件定义了关键字高亮,行注释/块注释,折叠规则等,语法文件保存在EverEdit安装目录的syntax文件夹。
  • 扩展名:源文件的扩展名,比如:AWK语言的源文件扩展名为"awk"。
  • 制表符:表示制表符的宽度(占几个英文字符),推荐配置为4。
  • 使用空格代替制表符:即在源文件中不出现制表符,用户按下Tab键会插入4个空格(根据制表符参数配置的数目)。
  • 列标记:在编辑窗口的指定列显示"竖线",参考:符号显示详解
1.3.1.1 扩展名补充配置

  扩展名是识别文档类型的关键配置,文件如果没有扩展名,将无法判断文件类型,也无法显示语法高亮,此时默认会按TXT文件格式显示(没有高亮)。

  EverEdit额外补充了根据文件内容判断文档类型的功能,但只能判断文件首行。

单击更多按钮,会弹出语法着色匹配规则窗口:

  • 文件名的匹配规则:优先级最高的规则是文件名规则 ,比如:*.awk,表示所有以"awk"扩展名结尾的文件都按AWK文档类型处理。
  • 文件首行的匹配规则:设置正则表达式,如果文件首行匹配这个正则表达式,则认为是AWK文档类型。该规则只有在文件名没有匹配成功时才会生效,可以判断某些没有文件扩展名的文档类型。

🕮说明
为什么通过文件首行可以判断文件类型?
一般在Linux系统编写脚本,首行都会有一条特殊注释,它告诉系统用哪个命令来执行该文件,如果缺失该注释,脚本将无法运行。
示例1 :Linux下的Bash脚本,文件首行必须有
#! /bin/bash

示例2 :Linux下的awk脚本,文件首行必须有
#! /bin/awk

  配置首行匹配规则后,使用EverEdit打开没有扩展名的awk文件也可以正常显示语法高亮 ,如下图所示:

1.3.2 配置工具与大纲

  1. 步骤1 :在语法着色窗口单击高级按钮,弹出高级窗口,如下图所示:

  2. 步骤2 :设置工具和模式【可选】
    工具分组参考:外部工具

    设置工具分组后,工具栏上的外部工具按钮会根据文档类型只显示对应的工具分组,如下图所示:

注:主菜单上的外部工具不会根据文档类型显示或隐藏。

模式将在后续章节介绍。

  1. 步骤3 :设置帮助文件【可选】

    帮助文件为chm格式文件,设置帮助文件后,选择主菜单帮助 -> 关联帮助会打开对应文档类型的帮助文件。

  2. 步骤4 :设置大纲视图【可选】

    大纲视图的配置方法可以参考:大纲视图

其他配置:

  • 语法着色的单行最大长度:该值建议保持默认设置,设置过大会影响语法解析性能。
  • 保存时自动删掉行尾的空格:删除行尾空格,减少文件体积,确保源文件干净。
  • 保存时确保最后一行有一个空白行:文件末尾保留一个空行,这个设置主要是为了保证兼容性,早期部分编辑器或C/C++编译器要求源文件末尾以空行结束,否则编译时会出现告警。

1.4 编写语法着色文件

  一般不建议从0开始编写语法文件,很多语言的语法文件都相通,可以在syntax目录拷贝一份进行修改。

语法着色文件编写指导:语法着色

如果上述链接访问故障,可以尝试访问:语法着色-博客园


文档作者声明:本文档仅用于学习交流,未经作者许可,不得将本文档用于其他目的。

Copyright © 2022~2024 All rights reserved.

相关推荐
一木 之林6 小时前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器
东木月1 天前
PyCharm 集成 Claude Code 插件:安装、配置与使用指南
python·pycharm·编辑器
boke112百科1 天前
WordPress经典编辑器【插入至文章】按钮怎么调到右上角?
编辑器·wordpress·wordpress教程·经典编辑器
我要见SA姐12 天前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
ide·vscode·python·自动化·编辑器
我要见SA姐13 天前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
数据库·ide·vscode·oracle·编辑器
MR.P_H_4 天前
CCS(Code Composer Studio)修改编码格式
编辑器
golang学习记6 天前
Zed 新特性:这次继续抄VSCode
vscode·编辑器·zed
javgo.cn6 天前
Markune:一个开源的 Local-first Markdown 工作区
笔记·编辑器
零基础的修炼9 天前
CUDA知识汇总
开发语言·c++·编辑器
Java后端的Ai之路10 天前
Git pull弹出vim编辑器完整排查指南
开发语言·人工智能·git·编辑器·vim