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'},\ ])

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

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

相关文章

动态规划基础(一)引入

T a l k Talk Talk i s is is c h e a p cheap cheap , , , s h o w show show m e me me t h e the the c o d e code code 数字三角形 题目大意 给定数字金字塔,每个单位有自己的权值,问从顶端出发,到底端任意一点的所有路径中&a…

算法训练营Day37(贪心6)

738.单调递增的数字 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 注意特例1000 class Solution:def monotoneIncreasingDigits(self, n: int) -> int:# 将整数转换为字符串strNum str(n)# flag用来标记赋值9从哪里开始# 设置为字符串长度&am…

HarmonyOS 页面跳转控制整个界面的转场动画

好 本文 我们来说 页面间的转场动画 就是 第一个界面到另一个界面 第一个界面的退场和第二个界面的进场效果 首先 我这里 创建了两个页面文件 Index.ets和AppView.ets index组件 编写代码如下 import router from "ohos.router" Entry Component struct Index {b…

Day39 动态规划part02 62. 不同路径 63. 不同路径 II

动态规划part02 62. 不同路径 63. 不同路径 II 62. 不同路径 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m, vector(n,0)); //第一步&#xff0c;确定dp[i][j]就是移动到[i,j]位置的方法数量for(int i 0; i<dp.size();…

解决你所有ArcGIS标注问题!二分式、三分式、条件分类标注、上下标、牵引线、文字格式化…

解决你所有ArcGIS标注问题&#xff01;二分式、三分式、条件分类标注、上下标、牵引线、文字格式化… 标注是将描述性文本放置在地图中的要素上或要素旁的过程。 本文整理了ArcGIS中的各种标注方法、可能遇到的问题和细节&#xff0c;内容比较杂&#xff0c;想到哪写到哪。 …

tui.calender日历创建、删除、编辑事件、自定义样式

全是坑&#x1f573;&#xff01;全是坑&#x1f573;&#xff01;全是坑&#x1f573;&#xff01;能不用就不用&#xff01; 官方文档&#xff1a;https://github.com/nhn/tui.calendar/blob/main/docs/en/apis/calendar.md 实例的一些方法&#xff0c;比如创建、删除、修改、…

python使用jupyter记笔记

目录 一、安装 二、运行jupyter 三、使用 四、记笔记 Jupyter Notebook&#xff08;此前被称为 IPython notebook&#xff09;是一个交互式笔记本&#xff0c;支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序&#xff0c;便于创建和共享程序文档&a…

位运算的奇技淫巧

常见位运算总结&#xff1a; 1、基础位运算 左移<<运算 将二进制数向左移位操作&#xff0c;高位溢出则丢弃&#xff0c;低位补0。 右移>>运算 右移位运算中&#xff0c;无符号数和有符号数的运算并不相同。对于无符号数&#xff0c;右移之后高位补0&#xff…

【正点原子STM32连载】 第四十三章 FLASH模拟EEPROM实验 摘自【正点原子】APM32E103最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子APM32E103最小系统板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第四…

自定义shell工具函数之pull_image()

这是一个名为pull_image的Shell脚本函数。让我来解释一下这个函数的功能&#xff1a; function pull_image() {image$1DOCKER_IMAGE_MIRROR$(get_config_or_env DOCKER_IMAGE_MIRROR)if [[ "${DOCKER_IMAGE_MIRROR}" "1" ]]; thenif [[ "$(uname -m…

深入解析ESP32C3(1) - 使用ESP-IDF

乐鑫ESP32系列芯片是性价比非常高的嵌入式平台&#xff0c;不仅外设接口丰富&#xff0c;有较多的存储空间&#xff0c;还支持WIFI/BT等无线连接&#xff0c;同时也支持加密和权限管理等安全功能&#xff0c;这大大拓展了芯片的应用领域&#xff1b;当然&#xff0c;最重要的是…

Python使用pyechart分析疫情确诊人数图(2024)

import json from pyecharts.charts import Map from pyecharts import options as opts# 首先打开文件获取数据 f open("/Desktop/python/Project/数据可视化/疫情.txt", "r", encoding"UTF-8") data f.read()# 字符串转化成json数据 data_js…

Java多线程--创建多线程的基本方式一:继承Thread类

文章目录 一、创建和启动线程&#xff08;1&#xff09;概述&#xff08;2&#xff09;方式1&#xff1a;继承Thread类1、使用步骤2、举例2.1 案例12.2 案例22.3 案例3 3、两个问题3.1 问题13.2 问题2 4、代码及总结 二、练习&#xff08;1&#xff09;方式一&#xff08;2&…

索引的概述和性能分析

索引index&#xff0c;是一种有序的数据结构&#xff0c;可以高效的获取数据&#xff0c;在数据库中维护着满足查找特定算法的数据结构&#xff0c;就是索引 无索引的情况&#xff0c;查询数据时会全表扫描&#xff0c;效率极低 索引结构 &#xff08;1&#xff09;二叉树&…

python解决求二叉树的最长同值路径问题

对于给定的一颗二叉树&#xff0c;需要找到最长的路径&#xff0c;并且该路径上的每个节点具有相同的值的问题&#xff0c;对于寻找到的这条路径可以经过根节点也可以不经过根节点&#xff0c;两个节点之间的路径长度是由他们的变数来表示的&#xff0c;给定如下图的二叉树 添加…

【 Qt 快速上手】-②- Qt 环境搭建

文章目录 1. Qt 开发工具概述1.1 Qt Creator 介绍1.2 Visual Studio 介绍1.3 Eclipse 介绍 2. Qt SDK 的下载与安装2.1 Qt SDK 的下载2.2 Qt SDK 的安装2.3 验证 Qt SDK 安装是否成功2.4 Qt 环境变量配置 1. Qt 开发工具概述 Qt 开发环境需要安装三个部分&#xff1a; C编译器…

小伙频繁发朋友圈引发分手,拼命“晒“生活是否成为一种病态行为?

根据《西湖之声》1月19日的报道&#xff0c;一个小伙子因为一天发十几条朋友圈而引起了他女友的不满&#xff0c;女友甚至提出了分手。现如今&#xff0c;朋友圈已经成为每个人自我形象展示的平台&#xff0c;认真发朋友圈不仅是表达自己的一种方式&#xff0c;也是一种自我释放…

redis缓存和本地缓存的应用设计

数据查询顺序 一级缓存&#xff1a;本地缓存 -》二级缓存&#xff1a;redis缓存 -》数据库 本地缓存和分布式缓存 本地缓存&#xff1a;基于jvm, 意思是程序放在哪&#xff0c;数据就存储在哪&#xff0c;不需要网络请求&#xff0c;特别快&#xff0c;但是需要占用jvm的内存…

Python利用Excel读取和存储测试数据完成接口自动化教程

http_request2.py用于发起http请求 #读取多条测试用例#1、导入requests模块import requests#从 class_12_19.do_excel1导入read_data函数from do_excel2 import read_datafrom do_excel2 import write_datafrom do_excel2 import count_case#定义http请求函数COOKIENonedef ht…

Unity之四元数计算

四元数相乘 #region 四元数相乘 Quaternion q Quaternion.AngleAxis(20, Vector3.up); this.transform.rotation * q; #endregion 四元数乘向量 Vector3 v Vector3.forward; print(v); //四元数乘向量的顺序不能改变&#xff0c;也就是说不能用向量去乘四元数&#xff0c;…