当前位置: 首页 > news >正文

2401vim,vim标号

标号简介

提供高亮,快速告诉用户有用信息.如,调试器在左侧列中有个表示断点的图标.

另一例可能是表示(PC)程序计数器的箭头.标号功能允许在窗口左侧放置标号或图标,并定义应用行的高亮.
此外,调试器还支持8到10种不同的标号和高亮颜色,见|NetBeans|.

使用标号有两个步骤:

1.定义标号.来指定图像,文本和高亮.如,可用停车图像和"!!"文本定义"断点"标号.
2.放置标号.指定了显示标号文件和行号.可在不同行和文件中多次放置定义的标号.

标号列

为文件定义标号时,Vim会自动添加一列两个符来显示它们.当移除掉最后标号后,该列再次消失.可用"signcolumn"选项更改此行为.

可使用SignColumn|hl-SignColumn|设置列颜色高亮组.设置颜色的示例:

    :highlight SignColumn guibg=darkgrey

标号标识

每个放置的标号都由用来跳转到标号删除标号标号标识数字来标识.在使用|:sign-place|命令或|sign_place()|函数时赋值的标识.

每个标号标识都应该是个唯一数字.如果多个放置标号,使用相同标识,则不可预测跳转到或删除的标号.为避免标识重叠,可用标号组.

可用零号标识调用|sign_place()|函数来分配下个可用标识.

标号组

每个放置的标号都可赋值给全局组命名组.

放置标号时,如果未提供组名,或使用空串,则该标号放置在全局组中.否则,在命名组放置该标号.在组中标号标识是唯一的.

标号组允许Vim插件使用唯一标号,而不会干扰其他使用标号的插件.

要在弹窗中放置标号,组名必须以"PopUp"开头.

弹窗中不会显示其他标号.由设置了"cursorline"的弹窗使用"PopUpMenu"组名.

标号优先

每个放置的标号都赋值了一个优先级值.在同一行上放置多个标号时,独立标号组使用优先级最高属性的标号.标号的默认优先级为10.在放置标号时赋值优先级.

如果有两个相同优先级的标号,且一个在标号栏中有一个图标或文本,而另一个标号行高亮,则两者都会显示.

删除放置标号的行时,把标号移动到下一行(如果没有下一行,则移动到缓冲的最后一行).撤消删除操作后,不会移回该标号.

同时有带行高亮和"光标行"高亮的标号时,如果优先级为100更高,则标号高亮优先,否则为"光标行"高亮.

以下示例,在当前文件的第23行放置了一个与">>"文本一起显示的"piet"标号:

:sign define piet text=>> texthl=Search
:exe ":sign place 2 line=23 name=piet file=" . expand("%:p")

这是再次删除它的命令:

:sign unplace 2

注意,":sign"命令后面不能有另一个命令或注释.如果确实需要,请使用|:execute|命令.

定义标号

|sign_define()|,等效的Vim脚本函数.

:sign define {name} {argument}...

现有标号定义新标号或设置属性,示例:

:sign define MySign text=>> texthl=Search linehl=DiffText

删除标号

:sign undefine MySign

列举标号

|sign_getdefined()|,等效的Vim脚本函数.

:sign list列举所有已定义的标号及其属性.

:sign list {name}

列举已定义的标号及其属性.

放置标号

|sign_place()|,等效的Vim脚本函数.

:sign place {id} line={lnum} name={name} file={fname}

{fname}文件的{lnum}行,放置定义叫{name}的标号.

该标号{id},可用来进一步操作.{id}必须是个数字.
可在"file="之前指定以下可选标号属性:
组与优先级.
默认,在全局组中放置标号.
默认,优先级为10.示例:

:sign place 5 line=3 name=sign1 file=a.py
:sign place 6 group=g2 line=2 name=sign2 file=x.py
:sign place 9 group=g2 priority=50 line=5\ name=sign1 file=a.py

加上缓冲号:

:sign place {id} line={lnum} name={name} [buffer={nr}]

相同,但使用缓冲{nr}.如果未给定buffer参数,
当前缓冲中放置标号.

示例:

:sign place 10 line=99 name=sign3
:sign place 10 line=99 name=sign3 buffer=3
:sign place {id} name={name} file={fname}

更改{fname}文件中,放置的{id}标号以使用定义的{name}标号.见上面{fname}|:sign-fname|.

可在不移动更改显示的标号

它(如,当调试器在断点停止时).

示例:

:sign place 23 name=sign1 file=/path/to/edit.py
:sign place {id} name={name} [buffer={nr}]

相同,但使用{nr}缓冲.
示例:

:sign place 23 name=sign1
:sign place 23 name=sign1 buffer=7

|sign_unplace()|来等效的Vim脚本函数.

:sign unplace {id} file={fname}
:sign unplace {id} group={group} file={fname}
:sign unplace {id} group=* file={fname}
:sign unplace * file={fname}
:sign unplace * group={group} file={fname}
:sign unplace * group=* file={fname}
:sign unplace {id} buffer={nr}
:sign unplace {id} group={group} buffer={nr}
:sign unplace {id} group=* buffer={nr}
:sign unplace * buffer={nr}
:sign unplace * group={group} buffer={nr}
:sign unplace * group=* buffer={nr}
:sign unplace {id}
:sign unplace {id} group={group}
:sign unplace {id} group=*
:sign unplace *
:sign unplace * group={group}
:sign unplace * group=*
:sign unplace group={group}
:sign unplace
:sign unplace group=*

删除标号们.

列举标号

:sign place group={group} file={fname}
:sign place file={fname}
:sign place group=* file={fname}
:sign place buffer={nr}
:sign place group={group} buffer={nr}
:sign place group=* buffer={nr}
:sign place 
:sign place group={group}
:sign place group=*

跳至标号

|sign_jump()|来等效的Vim脚本函数.

:sign jump {id} file={fname}
:sign jump {id} group={group} file={fname}
:sign jump {id} [buffer={nr}] 
:sign jump {id} group={group} [buffer={nr}]

定义函数

sign_define({name} [, {dict}])
sign_define({list})

定义叫{name}的新标号或修改
现有标号.类似|:sign-define|命令.

call sign_define("mySign", {\ "text" : "=>",\ "texthl" : "Error",\ "linehl" : "Search"})
call sign_define([\ {'name' : 'sign1',\  'text' : '=>'},\ {'name' : 'sign2',\  'text' : '!!'}\ ])
sign_getdefined([{name}])

类似|:sign-list|命令,取已定义标号及其属性的列表.

示例:取所有已定义标号的列表:
取名为mySign的标号的属性:

echo sign_getdefined()
echo sign_getdefined("mySign")
sign_getplaced([{expr} [, {dict}]])

类似|:sign-place-list|命令,返回放置在缓冲或所有缓冲中的标号列表.

如果指定了可选的{expr}缓冲名,则仅返回放置在该缓冲中的标号列表.

示例:>"取放置在eval.c中的标号列表"全局组echosign_getplaced("eval.c")

"在eval.c中的所有"
echo sign_getplaced("eval.c")
"在eval.c中的'g1'组"
echo sign_getplaced("eval.c", {'group' : 'g1'})
"文件中的第10行"
echo sign_getplaced("eval.c", {'lnum' : 10})"a.py中的id为10的那个"
echo sign_getplaced("a.py", {'id' : 10})
echo sign_getplaced("a.py", {'group' : 'g1',
\  'id' : 20})
echo sign_getplaced()
sign_jump({id}, {group}, {expr})

打开{expr}缓冲,或跳转到包含{expr},并在{group}组中的{id}标号处定位光标.
类似|:sign-jump|命令.

示例:
跳转到当前缓冲中的10标号.

call sign_jump(10, '', '')
sign_place({id}, {group}, {name}, {expr} [, {dict}])

buffer{expr}并分配{id}{group}sign.这是
类似|:sign-place|命令.

示例:

call sign_place(5, '', 'sign1', 'json.c',
\ {'lnum' : 20})
call sign_place(5, '', 'sign2', 'json.c')
let id = sign_place(0, '', 'sign3', 'json.c',
\ {'lnum' : 30})
call sign_place(10, 'g3', 'sign4', 'json.c',
\ {'lnum' : 40, 'priority' : 90})
sign_placelist({list})

放置多个标号.类似|sign_place()|函数.

let [n1, n2] = sign_placelist([\ {'id' : 5,\  'name' : 's1',\  'buffer' : 'a.c',\  'lnum' : 20},\ {'id' : 10,\  'name' : 's1',\  'buffer' : 'a.c',\  'lnum' : 30}\ ])let [n1, n2] = sign_placelist([\ {'name' : 's1',\  'buffer' : 'a.c',\  'lnum' : 40},\ {'name' : 's1',\  'buffer' : 'a.c',\  'lnum' : 50}\ ])
sign_undefine([{name}])
sign_undefine({list})

示例:

call sign_undefine("mySign")
"删除名为`mySign`的标号"
call sign_undefine(["sign1", "sign2"])
"删除`"sign1"`和`"sign2"`"标号
call sign_undefine()
"删除所有标号"
sign_unplace({group} [, {dict}])

删除多个缓冲先前放置的标号.类似|:sign-unplace|命令.
示例:

call sign_unplace('', {'buffer' : "a.vim", 'id' : 10})
"从`a.vim`缓冲中删除`10`标号"
call sign_unplace('g1', {'buffer' : 3, 'id' : 20})
"从`20`缓冲中删除`"g1"`组中的3标号"
call sign_unplace('g2', {'buffer' : 10})
"从`10`缓冲中删除`"g2"`组中的所有标号"
call sign_unplace('g3', {'id' : 30})
"从所有缓冲中删除`"g3"`组中的`30`标号"
call sign_unplace('*', {'buffer' : 5})
"删除5缓冲中的所有标号"
call sign_unplace('g4')
"从所有缓冲中删除`"g4"`组中的标号"
call sign_unplace('*', {'id' : 40})
"从所有缓冲中删除`40`标号"
call sign_unplace('*')
"从所有缓冲中删除所有放置的标号"
sign_unplacelist({list})

示例:

 "从`a.vim`缓冲中删除`id`为`10`的标号并用`b.vim`中的`20`标号来标号"
call sign_unplacelist([\ {'id' : 10, 'buffer' : "a.vim"},\ {'id' : 20, 'buffer' : 'b.vim'},\ ])

相关文章:

2401vim,vim标号

标号简介 提供高亮,快速告诉用户有用信息.如,调试器在左侧列中有个表示断点的图标. 另一例可能是表示(PC)程序计数器的箭头.标号功能允许在窗口左侧放置标号或图标,并定义应用行的高亮. 此外,调试器还支持8到10种不同的标号和高亮颜色,见|NetBeans|. 使用标号有两个步骤: 1…...

Web开发中HTTP请求、响应等相关知识

目录 params和data区别? post请求可以使用params吗? put、delete请求应该使用params还是data? get和post的区别? 常用注解使用 params和data区别? 在使用Ajax时,"params" 和 "data" 通常用于不同的上下文。 "params…...

[Android] Android文件系统中存储的内容有哪些?

文章目录 前言root 文件系统/system 分区稳定性:安全性: /system/bin用来提供服务的二进制可执行文件:调试工具:UNIX 命令:调用 Dalvik 的脚本(upall script):/system/bin中封装的app_process脚本 厂商定制的二进制可执行文件: /system/xbin/system/lib[64]/system/…...

透明拼接屏在汽车领域的应用

随着科技的进步,透明拼接屏作为一种新型的显示技术,在汽车领域的应用越来越广泛。尼伽小编将围绕透明拼接屏在汽车本身、4S店、展会、工厂等方面的应用进行深入探讨,并展望未来的设计方向。 一、透明拼接屏在汽车本身的应用 车窗显示&#x…...

“深入理解RabbitMQ交换机的原理与应用“

深入理解RabbitMQ交换机的原理与应用 引言1. RabbitMQ交换机简介介绍1.1 什么是RabbitMQ?1.1.1 消息中间件的作用1.1.2 RabbitMQ的特点和优势 1.2 RabbitMQ的基本概念1.2.1 队列1.2.2 交换机1.2.3 路由键 1.3 交换机的作用和分类1.3.1 直连交换机(direct…...

Programming Abstractions in C阅读笔记:p248-p253

《Programming Abstractions in C》学习第69天,p248-p253总结,总计6页。 一、技术总结 “A generalized program for two-player games”如标题所示,该小节强调要学会从一个复杂的程序中抽象出通用的内容——这也是本书的主旨——“Program…...

面试题目,你对前端工程化的了解

前端工程化是通过工具和流程来提高软件开发效率、降低维护成本以及改善项目可维护性的方法。在前端领域,前端工程化通常包括以下方面内容 版本控制 使用 git 来管理代码的版本,追踪变更,协作开发等项目脚手架 使用项目的脚手架进行项目的初始…...

2023年春秋杯网络安全联赛冬季赛 Writeup

文章目录 Webezezez_phppicup Misc谁偷吃了外卖modules明文混淆 Pwnnmanagerbook Reupx2023 CryptoCF is Crypto Faker 挑战题勒索流量Ezdede 可信计算 Web ezezez_php 反序列化打redis主从复制RCE&#xff1a;https://www.cnblogs.com/xiaozi/p/13089906.html <?php c…...

docker安装Rabbitmq教程(详细图文)

目录 1.下载Rabbitmq的镜像 2.创建并运行rabbitmq容器 3.启动web客户端 4.访问rabbitmq的微博客户端 5.遇到的问题 问题描述&#xff1a;在rabbitmq的web客户端发现界面会弹出如下提示框Stats in management UI are disabled on this node 解决方法 &#xff08;1&#…...

java web mvc-05-JSF JavaServer Faces 入门例子

拓展阅读 Spring Web MVC-00-重学 mvc mvc-01-Model-View-Controller 概览 web mvc-03-JFinal web mvc-04-Apache Wicket web mvc-05-JSF JavaServer Faces web mvc-06-play framework intro web mvc-07-Vaadin web mvc-08-Grails 开源 The jdbc pool for java.(java …...

yolov8 训练voc数据集

yolov8训练 from ultralytics import YOLO# 加载模型 # model YOLO(yolov8n.yaml) # 从YAML构建新模型 # model YOLO(yolov8n.pt) # 加载预训练模型&#xff08;推荐用于训练&#xff09; model YOLO(yolov8n.yaml).load(yolov8n.pt) # 从YAML构建并转移权重# 训练模型…...

Python笔记12-多线程、网络编程、正则表达式

文章目录 多线程网络编程正则表达式 多线程 现代操作系统比如Mac OS X&#xff0c;UNIX&#xff0c;Linux&#xff0c;Windows等&#xff0c;都是支持“多任务”的操作系统。 进程&#xff1a; 就是一个程序&#xff0c;运行在系统之上&#xff0c;那么便称之这个程序为一个运…...

X射线中关于高频高压发生器、高清晰平板探测器、大热容量X射线球管、远程遥控系统的解释

高频高压发生器&#xff08;High Frequency High Voltage Generator&#xff09; 在医用诊断X射线设备中扮演着关键角色&#xff0c;它主要用于产生并控制用于X射线成像的高压电能。 这种发生器采用高频逆变技术&#xff0c;通过将输入的低电压、大电流转换为高电压、小电流&am…...

【算法】最短路计数(搜索)复习

题目 给出一个 N 个顶点 M 条边的无向无权图&#xff0c;顶点编号为 1 到 N。 问从顶点 1 开始&#xff0c;到其他每个点的最短路有几条。 输入格式 第一行包含 2 个正整数 N,M&#xff0c;为图的顶点数与边数。 接下来 M 行&#xff0c;每行两个正整数 x,y&#xff0c;表…...

html火焰文字特效

下面是代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>HTML5火焰文字特效DEMO演示</title><link rel"stylesheet" href"css/style.css" media"screen" type&quo…...

Redis双写一致性

所有的情况都是再并发情况下存在温蒂 一、先更新数据库&#xff0c;再更新缓存场景-不推荐 当有两个线程A、B&#xff0c;同时对一条数据进行操作&#xff0c;一开始数据库和redis的数据都为1&#xff0c;当线程A去修改数据库&#xff0c;将1改为2&#xff0c;然后线程A在修改…...

html+css+javascript实现贪吃蛇游戏

文章目录 一、贪吃蛇游戏二、JavaScript三、HTML四、CSS五、热门文章 一、贪吃蛇游戏 这是一个简单的用HTML、CSS和JavaScript实现的贪吃蛇游戏示例。 HTML部分&#xff1a; <!DOCTYPE html> <html> <head><title>贪吃蛇游戏</title><styl…...

【K8S】Kubernetes 中滚动发布由浅入深实战

目录 一、Kubernetes中滚动发布的需求背景1.1 滚动发布1.2 滚动发布、蓝绿发布、金丝雀发布的区别 二、Kubernetes中实现滚动发布2.1 定义Kubernetes中的版本2.2 创建 Deployment 资源对象2.2.1 在 Yaml 中定义 Deployment 资源对象2.2.2 执行命令创建 Deployment 资源对象 三、…...

MSP430仿真器使用常见问题

一、 主要是驱动安装问题 有用户反应驱动安装不上&#xff0c;按照用户手册操作一直不能安装成功。 可以尝试如下步骤进行安装。 1. 双击设备管理器中无法安装或者提示有错误的430仿真器设备 选择驱动程序——更新驱动程序 选择手动安装 选择从电脑设备驱动列表中安装 弹出下…...

芯驰E3340软件编译以及更新步骤

打开已有工程File->Open Solution: 东南项目&#xff1a;e3340\boards\e3_324_ref_display\proj\jetour-t1n-fl3\sf\SES 编译&#xff1a;build->build sf 增加头文件和宏定义&#xff1a; 编译完成sf后&#xff0c;进行编译bootloader 东南项目&#xff1a;e3340\boa…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...

Python爬虫实战:研究Restkit库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...