国产编辑器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.mzph.cn/news/893360.shtml

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

相关文章

Linux中的基本指令(一)

一、Linux中指令的存在意义 Linux中,通过输入指令来让操作系统执行,以此达到控制操作系统的目的,类似于Windows中的双击,右键新建文件,新建文件夹等 1.补:关于屏幕的几个操作指令 ①清屏指令 clear 回…

2025/1/21 学习Vue的第四天

睡觉。 --------------------------------------------------------------------------------------------------------------------------------- 11.Object.defineProperty 1.在我们之前学习JS的时候&#xff0c;普通得定义一个对象与属性。 <!DOCTYPE html> <h…

Go Map 源码分析(一)

Go语言中的map是通过哈希表实现的&#xff0c;其底层结构和实现机制如下&#xff1a; 一、hash 结构 hmap结构体&#xff1a;是map的头部结构&#xff0c;主要字段及含义如下&#xff1a; count&#xff1a;表示当前哈希表中的元素数量&#xff0c;与len()函数相对应。flags…

Linux-C/C++--深入探究文件 I/O (上)(文件的管理、函数返回错误、exit()、_Exit()、_exit())

经过上一章内容的学习&#xff0c;相信各位读者对 Linux 系统应用编程中的基础文件 I/O 操作有了一定的认识和理解了&#xff0c;能够独立完成一些简单地文件 I/O 编程问题&#xff0c;如果你的工作中仅仅只是涉及到一些简单文件读写操作相关的问题&#xff0c;其实上一章的知识…

【机器学习实战中阶】音乐流派分类-自动化分类不同音乐风格

音乐流派分类 – 自动化分类不同音乐风格 在本教程中,我们将开发一个深度学习项目,用于自动化地从音频文件中分类不同的音乐流派。我们将使用音频文件的频率域和时间域低级特征来分类这些音频文件。 对于这个项目,我们需要一个具有相似大小和相似频率范围的音频曲目数据集…

Walrus Learn to Earn计划正式启动!探索去中心化存储的无限可能

本期 Learn to Earn 活动将带领开发者和区块链爱好者深入探索 Walrus 的技术核心与实际应用&#xff0c;解锁分布式存储的无限可能。参与者不仅能提升技能&#xff0c;还能通过完成任务赢取丰厚奖励&#xff01;&#x1f30a; 什么是 Walrus&#xff1f; 数据主权如今正成为越…

git 常用命令 git archive

git archive 是 Git 中用于创建一个包含指定提交或分支中所有文件的归档文件&#xff08;如 .tar 或 .zip&#xff09;的命令。这个命令非常适合用于分发项目快照、备份代码库或导出特定版本的文件。 git archive --formatzip --outputproject.zip HEAD …

Excel 技巧15 - 在Excel中抠图头像,换背景色(★★)

本文讲了如何在Excel中抠图头像&#xff0c;换背景色。 1&#xff0c;如何在Excel中抠图头像&#xff0c;换背景色 大家都知道在PS中可以很容易抠图头像&#xff0c;换背景色&#xff0c;其实Excel中也可以抠简单的图&#xff0c;换背景色。 ※所用头像图片为百度搜索&#x…

持续升级《在线写python》小程序的功能,文章页增加一键复制功能,并自动去掉html标签

增加复制按钮后的界面是这样的 代码如下&#xff1a; <template><view><x-header></x-header><view class"" v-if"article_info"><view class"kuai bgf"><view class"ac fs26"><img sr…

FPGA与ASIC:深度解析与职业选择

IC&#xff08;集成电路&#xff09;行业涵盖广泛&#xff0c;涉及数字、模拟等不同研究方向&#xff0c;以及设计、制造、封测等不同产业环节。其中&#xff0c;FPGA&#xff08;现场可编程门阵列&#xff09;和ASIC&#xff08;专用集成电路&#xff09;是两种重要的芯片类型…

【Linux】Linux入门(三)权限

目录 前提权限概念whoami指令 Linux权限管理文件访问者的分类&#xff08;人&#xff09;file指令权限信息权限的表示方法 chmod指令 更改权限chown指令 修改文件&#xff0c;文件夹所属用户和用户组 权限掩码umask&#xff08;权限掩码&#xff09; 粘滞位 前提 请先看下面这…

蓝桥与力扣刷题(73 矩阵置零)

题目&#xff1a;给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]]示例 2&…

Node.js接收文件分片数据并进行合并处理

前言&#xff1a;上一篇文章讲了如何进行文件的分片&#xff1a;Vue3使用多线程处理文件分片任务&#xff0c;那么本篇文章主要看一下后端怎么接收前端上传来的分片并进行合并处理。 目录&#xff1a; 一、文件结构二、主要依赖1. express2. multer3. fs (文件系统模块)4. pat…

大数据,Hadoop,HDFS的简单介绍

大数据 海量数据&#xff0c;具有高增长率、数据类型多样化、一定时间内无法使用常规软件工具进行捕捉、管理和处理的数据集 合 大数据的特征: 4V Volume : 巨大的数据量 Variety : 数据类型多样化 结构化的数据 : 即具有固定格式和有限长度的数据 半结构化的数据 : 是…

深度强化学习:PPO

深度强化学习算法&#xff1a;PPO 1. Importance Sampling 先说一下什么是采样&#xff1a;对于一个随机变量&#xff0c;我们通常用概率密度函数来描述该变量的概率分布特性。具体来说&#xff0c;给定随机变量的一个取值&#xff0c;可以根据概率密度函数来计算该值对应的概…

Flink底层架构与运行流程

这张图展示了Flink程序的架构和运行流程。 主要组件及功能&#xff1a; Flink Program&#xff08;Flink程序&#xff09;&#xff1a; 包含Program code&#xff08;程序代码&#xff09;&#xff0c;这是用户编写的业务逻辑代码。经过Optimizer / Graph Builder&#xff08…

嵌入式知识点总结 C/C++ 专题提升(一)-关键字

针对于嵌入式软件杂乱的知识点总结起来&#xff0c;提供给读者学习复习对下述内容的强化。 目录 1.C语言宏中"#“和"##"的用法 1.1.(#)字符串化操作符 1.2.(##)符号连接操作符 2.关键字volatile有什么含意?并举出三个不同的例子? 2.1.并行设备的硬件寄存…

mysql精简单机版,免登录,可复制,不启动服务与本机mysql无冲突

突然有了个需要在本地使用的mysql需求&#xff0c;要求不用安装,随拷随用,不影响其他mysql服务,占用空间小.基于这种需求做了个精简版的mysql 首先下载mysql的zip安装包 > windows 64位 > https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.36-winx64…

俄语画外音的特点

随着全球媒体消费的增加&#xff0c;语音服务呈指数级增长。作为视听翻译和本地化的一个关键方面&#xff0c;画外音在确保来自不同语言和文化背景的观众能够以一种真实和可访问的方式参与内容方面发挥着重要作用。说到俄语&#xff0c;画外音有其独特的特点、挑战和复杂性&…

【vitePress】基于github快速添加评论功能(giscus)

一.添加评论插件 使用giscus来做vitepress 的评论模块&#xff0c;使用也非常的简单&#xff0c;具体可以参考&#xff1a;giscus 文档&#xff0c;首先安装giscus npm i giscus/vue 二.giscus操作 打开giscus 文档&#xff0c;如下图所示&#xff0c;填入你的 github 用户…