国产编辑器EverEdit - 大纲视图

1 大纲视图

1.1 应用场景

  在编辑较长代码文件时,使用大纲视图可以方便的检视当前文件的变量、函数等信息,方便在不同函数间跳转,对整个文档的全貌了然于胸。
  在编辑XML文档时,通过展示XML文件的层次结构、节点布局,用户可以一览全貌,提高编辑效率。

1.2 使用方法

1.2.1 显示大纲视图

  1. 步骤1:选择菜单查看 -> 停靠窗格 -> 大纲视图即可打开“大纲视图”,如下图所示:

在这里插入图片描述

上图中用户编辑vbs文件,左边“大纲视图”显示当前文件中的函数列表

1.2.2 其他大纲功能

跟随光标: 用户在编辑器中进行编辑时,光标移动到哪个函数的函数体,大纲视图中的对应列表也会被选中。
在这里插入图片描述

刷新:重新分析大纲
复制结构: 将整个大纲列表全部复制到剪贴板。

1.3 大纲数据的来源

EverEdit提供了功能强大的大纲分析能力,大致可以分为如下4类:

  • 着色文件定义的符号: 根据语法文件配置的正则表达式规则提取符号。
  • ctags分析器:由ctags.exe对文件进行分析,EverEdit加载ctags的分析结果到大纲。
  • 内置分析器:比如:Go、Markdown。
  • 显示大纲:按EverEdit语法文件的折叠规则进行大纲分析,显示层次结构。

1.3.1 ctags分析器

  对很多编程语言,使用ctag都可以方便的提供对源文件的分析,输出非常详尽的变量、函数等信息,是编写或阅读代码不可多得的帮手。
在这里插入图片描述

使用ctag做为大纲数据来源时,在大纲窗口上单击鼠标右键,可以看到如下菜单:
在这里插入图片描述

显示Tags:平铺:大纲顺序与变量、函数等在文档中的前后顺序对应。
显示Tags:按照从属关系分组:如果识别从属关系,则按从属关系显示,比如:类和成员函数就属于从属关系。
显示Tags:按照类型分组:按符号的类型组织,比如:函数、变量等各分一类。

ctags最早是Vim下的一个组件,开始时是专门为C语言定制的分析器,后面经过发展,支持多达几十种语言,也慢慢的被其他编辑器采用,ctags目前分成了两个主要的分支,其一是exuberant ctags,其支持对41种编程语言进行分析,但该项目早在2009即停止了维护;其继任者是Universal ctags,目前维护状态很活跃,在exuberant ctags的基础上,在不断的增加对其他编程语言的支持,详情请参考:
exuberant ctags
universal-ctags

🕮说明
EverEdit目前使用的ctags是exuberant ctags,版本号是5.8(2009年停止更新),如果用户想使用最新的ctags,可以去universal ctags项目网址下载最新版,解压后将ctags.exe文件替换掉EverEdit安装目录下bin目录的ctags.exe。

1.3.2 内置的分析器

由于早期ctags的发展速度跟不上语言的发展速度,ctags没有及时支持go语法和Markdown语法,EverEdit为此单独地给go、Markdown做了分析器:
在“大纲视图”面板单击鼠标右键,有如下菜单:
在这里插入图片描述

一般情况下,大纲视图会根据打开的文档类型,自动选择对应的分析器,因此,打开go文件、markdown文件就可以直接显示大纲了。

🕮说明
* universal ctags最新版已经支持go、markdown语法,但是分析效果不如EverEdit内置的分析器。

1.3.3 着色文件定义的符号

如果用户日常使用的某种特定语法格式的文件,既没有在ctags的支持范围内,也没有流行到惊动EverEdit单独定制分析器,那么,用户还可以通过语法着色文件来定义自己的解析规则。
下面以编写EverEdit扩展脚本为样例进行演示:

  1. 步骤1:选择菜单“工具 -> 设置 -> 语法着色”,在弹出的语法着色配置窗口中,单击高级按钮,如下图所示:
    注:语法着色列表会自动选中当前打开文档对应的语法规则。
    在这里插入图片描述

  2. 步骤2:配置正则表达式规则和分组
    显示大纲的方式:选择用正则表达式提取符号
    用正则表达式表达式去提取符号编辑框中输入合适的正则表达式(注:需要用户学习正则表达式语法)。
    使用捕获分组编辑框中输入正确的分组(注:分组对应正则表达式中的括号)
    取哪个分组即表示在大纲视图的列表中显示哪组匹配内容,一般使用函数名所在分组。
    在这里插入图片描述

  3. 步骤3:切换到大纲视图即可看到正则表达式提取的符号,如下图所示

在这里插入图片描述

1.3.4 显示大纲

使用方法:在大纲视图面板中单击鼠标右键,选择菜单显示大纲,则大纲面板显示的内容将是有折叠的,该折叠与编辑器里的代码折叠一一对应,如下图所示:

在这里插入图片描述

显示大纲层级结构的来源,为语法着色文件中的折叠规则,用户可以打开菜单工具 -> 设置 -> 语法着色,在弹出的对话框中单击“编辑”按钮,如下图所示
在这里插入图片描述

在打开的语法文件中找到FoldText字样,如下图所示,其定义的正则表达式即为折叠的条件。
在这里插入图片描述

上图示例是VBS语言的折叠规则,折叠规则的定义需要对正则表达式比较熟悉。

1.4 名词解释

符号:这里的符号不是指键盘上的符号(~!@#等),而是指编程语言中的标识符,比如:函数名、变量名、对象名等,标识符一般是以字母或下划线开头,只能包含字母、下划线、数字的字符串,如:Print,Writeln等。


文档作者声明:本文档仅用于学习交流,未经作者许可,不得将本文档用于其他目的。
Copyright © 2022~2024 All rights reserved.

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

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

相关文章

FastExcel的使用

前言 FastExcel 是一款基于 Java 的开源库,旨在提供快速、简洁且能解决大文件内存溢出问题的 Excel 处理工具。它兼容 EasyExcel,提供性能优化、bug 修复,并新增了如读取指定行数和将 Excel 转换为 PDF 的功能。 FastExcel 的主要功能 高性…

GESP2024年3月认证C++六级( 第三部分编程题(1)游戏)

参考程序&#xff1a; #include <cstdio> using namespace std; const int N 2e5 5; const int mod 1e9 7; int n, a, b, c; int f[N << 1]; int ans; int main() {scanf("%d%d%d%d", &n, &a, &b, &c);f[N n] 1;for (int i n; i…

JVM深入学习(一)

目录 一.JVM概述 1.1 为什么要学jvm&#xff1f; 1.2 jvm的作用 1.3 jvm内部构造 二.JVM类加载 2.1类加载过程 2.2类加载器 2.3类加载器的分类 2.4双亲委派机制 三.运行时数据区 堆空间区域划分&#xff08;堆&#xff09; 为什么分区(代)&#xff1f;&#xff08…

java后端之事务管理

Transactional注解&#xff1a;作用于业务层的方法、类、接口上&#xff0c;将当前方法交给spring进行事务管理&#xff0c;执行前开启事务&#xff0c;成功执行则提交事务&#xff0c;执行异常回滚事务 spring事务管理日志&#xff1a; 默认情况下&#xff0c;只有出现Runti…

hadoop==docker desktop搭建hadoop

hdfs map readuce yarn https://medium.com/guillermovc/setting-up-hadoop-with-docker-and-using-mapreduce-framework-c1cd125d4f7b 清理资源 docker-compose down docker system prune -f

类和对象(4)——多态:方法重写与动态绑定、向上转型和向下转型、多态的实现条件

目录 1. 向上转型和向下转型 1.1 向上转型 1.2 向下转型 1.3 instanceof关键字 2. 重写&#xff08;overidde&#xff09; 2.1 方法重写的规则 2.1.1 基础规则 2.1.2 深层规则 2.2 三种不能重写的方法 final修饰 private修饰 static修饰 3. 动态绑定 3.1 动态绑…

Java 实现Excel转HTML、或HTML转Excel

Excel是一种电子表格格式&#xff0c;广泛用于数据处理和分析&#xff0c;而HTM则是一种用于创建网页的标记语言。虽然两者在用途上存在差异&#xff0c;但有时我们需要将数据从一种格式转换为另一种格式&#xff0c;以便更好地利用和展示数据。本文将介绍如何通过 Java 实现 E…

嵌入式蓝桥杯电子赛嵌入式(第14届国赛真题)总结

打开systic 生成工程编译查看是否有问题同时打开对应需要的文档 修改名称的要求 5.简单浏览赛题 选择题&#xff0c;跟单片机有关的可以查相关手册 答题顺序 先从显示开始看 1,2 所以先打开PA1的定时器这次选TIM2 从模式、TI2FP2二通道、内部时钟、1通道设为直接2通道设置…

Oracle Agile PLM Web Service Java示例测试开发(一)环境环境、准备说明

1 说明 1.1 PLM信息介绍 PLM&#xff1a;Oracle的产品Agile PLM&#xff08;Agile Product Lifecycle Management&#xff09; 版本号&#xff1a;9.3.6 (Build 47) Path&#xff1a;https://IP:7002/Agile/default/login-cms.jsp 1.2 开发工具和环境说明 开发工具&#xf…

引领产品创新: 2025 年 PM 效能倍增法则

本文讲述 PM 如何利用 AI 做到效率倍增&#xff0c;非常有借鉴意义&#xff0c;故而翻译于此。 原文链接&#xff1a;https://www.news.aakashg.com/p/the-ai-pms-playbook 在产品圈有一个广为流传的说法&#xff1a; “每个产品经理都应该成为 AI 产品经理。” 这个观点有一…

unity学习20:time相关基础 Time.time 和 Time.deltaTime

目录 1 unity里的几种基本时间 1.1 time 相关测试脚本 1.2 游戏开始到现在所用的时间 Time.time 1.3 时间缩放值 Time.timeScale 1.4 固定时间间隔 Time.fixedDeltaTime 1.5 两次响应时间之间的间隔&#xff1a;Time.deltaTime 1.6 对应测试代码 1.7 需要关注的2个基本…

在Windows系统中本地部署属于自己的大语言模型(Ollama + open-webui + deepseek-r1)

文章目录 1 在Windows系统中安装Ollama&#xff0c;并成功启动&#xff1b;2 非docker方式安装open-webui3下载并部署模型deepseek-r1 Ollama Ollama 是一个命令行工具&#xff0c;用于管理和运行机器学习模型。它简化了模型的下载与部署&#xff0c;支持跨平台使用&#xff0c…

996引擎 - NPC-动态创建NPC

996引擎 - NPC-动态创建NPC 创建脚本服务端脚本客户端脚本参考资料有个小问题,创建NPC时没有控制朝向的参数。所以。。。自己考虑怎么找补吧。 创建脚本 服务端脚本 Mir200\Envir\Market_Def\test\test001-3.lua -- NPC入口函数 function main(player)-- 获取玩家的用户名…

【云安全】云原生-Docker(五)容器逃逸之漏洞利用

漏洞利用逃逸 通过漏洞利用实现逃逸&#xff0c;主要分为以下两种方式&#xff1a; 1、操作系统层面的内核漏洞 这是利用宿主机操作系统内核中的安全漏洞&#xff0c;直接突破容器的隔离机制&#xff0c;获得宿主机的权限。 攻击原理&#xff1a;容器本质上是通过 Linux 的…

82,【6】BUUCTF WEB .[CISCN2019 华东南赛区]Double Secret

进入靶场 提到了secret&#xff0c;那就访问 既然这样&#xff0c;那就传参看能不能报错 这个页面证明是有用的 传参长一点就会报错&#xff0c;传什么内容无所谓 所以网站是flask框架写的 有一个颜色深一点&#xff0c;点开看看 rc4加密url编码 import base64 from urllib…

高频 SQL 50 题(基础版)_620. 有趣的电影

高频 SQL 50 题&#xff08;基础版&#xff09;_620. 有趣的电影 一级目录 表&#xff1a;cinema id 是该表的主键(具有唯一值的列)。 每行包含有关电影名称、类型和评级的信息。 评级为 [0,10] 范围内的小数点后 2 位浮点数。 编写解决方案&#xff0c;找出所有影片描述为 …

React 前端框架实战教程

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 引言 React 是由 Facebook 开发的前端 JavaScript 库&#xff0c;旨在构建高效、灵活的用户界面&#xff0c;尤其适用于单页应用…

【Linux线程总结】VMA ELF 地址转换 同步和互斥 条件变量 PC模型 循环队列 POSIX信号量 线程池

文章目录 VMAELF地址转换线程相关函数同步和互斥引入条件变量总结条件变量PC模型循环队列POSIX信号量接口posix信号量和systemV信号量主要异同适用场景总结 基于循环队列的PCModel 锁--条件变量--信号量 的产生由来线程相关问题线程池回顾进程池 VMA ELF Executable and Linka…

基于ESP32的桌面小屏幕实战[6]:环境搭建和软件基础

摘要 本文分为两部分&#xff1a;Linux开发环境搭建和软件基础。Linux开发环境搭建介绍了Ubuntu虚拟机安装及SSH、Samba配置&#xff0c;可以实现用VSCode操作虚拟机。为了后续工作&#xff0c;搭建了乐鑫ESP32 SDK环境。软件基础介绍了Linux开发常用的软件基础&#xff0c;包…

FreeRtos的使用教程

定义&#xff1a; RTOS实时操作系统, (Real Time Operating System), 指的是当外界事件发生时, 能够有够快的响应速度,调度一切可利用的资源, 控制实时任务协调一致的运行。 特点&#xff1a; 支持多任务管理&#xff0c; 处理多个事件&#xff0c; 实现更复杂的逻辑。 与计算…