【vim 学习系列文章 10 -- vim 将代码中空格高亮显示方法】

news2024/11/26 2:00:11

文章目录

    • vim 高亮空格使用背景
    • 如何配置vim 可以自动显示空格呢?
      • vim highlight 命令使用介绍
      • vim 空白行的处理
      • vim match 命令详细介绍

vim 高亮空格使用背景

开发人员在编写代码之后,在review通过之后会将代码推到服务器然后merge,但是有些代码对格式要求很严格,比如 linux 代码就不允许代码中出现 空格 或者^M,如下图所示,在使用 git diff . 之后可以看到代码中有一行空格。
在这里插入图片描述

如何配置vim 可以自动显示空格呢?

vim ~/.vimrc 添加下面一段内容即可

"""""""""""""""""""""""""""""""""""""""
" Used to show the spaces in code text
"""""""""""""""""""""""""""""""""""""""
highlight ExtraWhitespace ctermbg=red guibg=darkgreen
autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$\| \+\ze\t/

vim highlight 命令使用介绍

在 Vim 编辑器中,highlight(或简写为 :hi)命令用于修改或显示语法高亮的颜色和样式。这个命令非常强大,可以让你自定义 Vim 的颜色方案和高亮显示的效果。

一般使用的格式是:

highlight {group} {keys}={values}
  • {group} 是你要修改的语法组名,比如 Comment,String,Function 等等,这些都是预定义的语法组;
  • {keys} 是你要修改的属性,比如 guifg,guibg,gui,ctermbg,ctermfg,cterm 等等;
  • {values} 是你希望设置的值。

例如,你可以使用以下命令来改变注释的颜色:

highlight Comment guifg=blue

这会将 GUI(例如 gVim 或 MacVim)中的注释文本的前景色(guifg)设置为蓝色。

如果你想要查看当前的 Comment 高亮设置,你可以用下面的命令:

highlight Comment

这将会显示类似下面的输出:

Comment xxx term=bold ctermfg=14 guifg=#80a0ff

这表示在终端(term)中,注释文本会被显示为粗体(bold),在 color-terminal 中,注释文本的前景色(ctermfg)会被设置为颜色编号为14的颜色,在 GUI 中,注释文本的前景色(guifg)会被设置为 #80a0ff
在这里插入图片描述

你也可以使用 :highlight 命令来查看所有的语法高亮设置,只需不带参数地输入 :highlight 就可以了。

vim 空白行的处理

在Vim中,你可以使用各种方法来寻找和删除额外的空白。以下是一些例子:

寻找每行末尾的额外空白,你可以使用以下的搜索命令:

/\s\+$

这个命令会在当前文档中高亮显示每行末尾的一串空白。

删除每行末尾的额外空白,你可以使用以下的替换命令:

%s/\s\+$//e

这个命令会查找每行末尾的一串空白,并用空字符串替换它(也就是删除它)。

如果你想在保存文件时自动删除每行末尾的额外空白,你可以在你的 .vimrc 文件中添加以下的 autocommand:

autocmd BufWritePre *.py :%s/\s\+$//e

这个命令会在你保存任何.py文件之前自动删除每行末尾的额外空白。你可以根据需要替换*.py以匹配其他类型的文件。

vim match 命令详细介绍

Vim 的 match 命令是一个非常有用的工具,用来在文本中查找匹配的字符串。

该命令的基本格式如下:

match {group} /{pattern}/

这里的 {group} 是一个高亮组的名称,{pattern} 是你想要匹配的正则表达式。

例如,如果你想高亮所有的 TODO 注释,你可以使用以下命令:

match Todo /TODO/

在这个例子中,“Todo” 是一个高亮组的名称,“TODO” 是你想要匹配的字符串。

你也可以使用两个命令来设置多个匹配,例如:

match Todo /TODO/ :2match Error /FIXME/

这将会高亮所有的 “TODO” 和 “FIXME”。

如果你想要取消匹配,你可以使用 match 命令而不带任何参数:

match

这将会取消所有的匹配。

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

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

相关文章

02、RocketMQ -- 应用场景、核心概念

目录 1、消息中间件应用场景场景一:异步解耦同步调用异步调用 场景二:流量削峰 2、常用消息中间件ActiveMQKafkaRabbitMQRocketMQ 3、RocketMQ的核心概念生产者Producer消费者Consumer名字服务Name Server代理服务器Broker Server消息主题Topic消息队列M…

idea使用Spring Initializer创建springboot项目的坑【保姆级教学】

项目场景: 提示:这里先简述项目创建后遇到的问题和解决方案: idea 使用 Spring Initializer 创建springboot项目后, 有以下问题: ① 右键没有Run ② 右键New新建文件发现无Java Class选项 然后解决掉 ①② 问题后出…

AbortController中止请求通信[模糊搜索案例]

AbortController中止请求通信[模糊搜索案例] AbortController中止请求通信(模糊搜索案例) AbortController中止请求通信(模糊搜索案例) 这里用模糊搜索来做示例,这里是调用后端模糊搜索接口 该案例的中止请求可以用于很多地方,比如取消上传/下载文件等 完…

【分享】哇,不愧是国家出品!逆袭必备!!

哈喽,大家好,木易巷又发现好东西了 你还在为学习技能花💰吗? 别傻了,偷偷告诉你🤫,国家早就为我们提供了免费的学习网站!不仅可以免费学习各种技能,还可以拿职业证书&a…

华为数通方向HCIP-DataCom H12-831题库(单选题:281-300)

第281题 如图所示,某工程师利用4台路由器进行网络互通测试,其中R1、R2、R3部署OSPF (Area0)实现网络互通,R2、R3、R4部署IS-IS(均部署为Level-2路由器)实现网络互通,现在该工程师在R1的OSPF进程中引入直连路由,在R2的IS-IS进程中引入OSPF路由,则以下关于该场景的描述,正…

Fiddler+逍遥模拟器抓包显示tunnel to无法抓包的解决方法

1.安装OpenSSL 下载便携式安装包:https://slproweb.com/products/Win32OpenSSL.html 如果不放心第三方的也可以打开官网去下载安装,官网地址 我这里用的第三方的 下载下来一直下一步安时就好,到了最后一步是给坐着捐赠¥10&am…

高速电路设计----第三章

一、数字信号需要上拉的情况 1、 一般信号上拉接多大的电阻要看对于芯片的电流要求。看芯片datasheet的I(BHLO)和I(BHHO)两个参数。平时的话: 3.3V的上拉为1K~3.3k即可 5V的上拉电阻为4.7K到10K即可。 2、数字信号的逻辑控制&a…

操作系统四大特征

OS四大特征 1.OS的并发性(同一时间间隔内执行和调度多个程序的能力) 宏观上,处理机同时执行多道程序 微观上,处理机在多道程序间高速切换(分时交替执行),微观上并非是同时执行的。 关注单个处理机同一时间段内处理任…

2023最新性能测试八股文【附答案】,软测人必备!

1. 请描述什么是性能测试、什么是负载测试、什么是压力测试? 【参考答案】 性能测试:性能测试是和功能测试相对应的。根据用户场景进行的单个用户操作,是属于功能测试领域,主要是验证软件是否可以满足用户的功能需求。比如&#x…

C++之IO流

IO流 C语言的输入与输出流是什么CIO流C标准IO流C文件IO流 stringstream的介绍 C语言的输入与输出 在C语言当中,我们使用最频繁的输入输出方式就是scanf与printf: scanf: 从标准输入设备(键盘)读取数据,并…

Spring的执行流程 Bean的作用域与生命周期

目录 Bean的作用域 设置作用域 Spring的执行流程 Bean的生命周期 Bean的作用域 Bean的作用域是指, Bean在Spring框架中的某种行为模式 1.singleton 单例模式 singleton是Spring中的默认的Bean作用域,它表示在整个应用程序中只存在一个Bean实例,每 次请求该Bean实例时都会…

【光流法实现目标追踪:Python实战指南】

文章目录 概要一、目标追踪概述二、光流法进行目标追踪小结 概要 在当今计算机视觉领域,图像处理被广泛应用于多个关键领域,包括图像分类、目标检测、语义分割、实例分割和目标追踪。其中,图像分类和目标检测作为基础应用为其他高级领域奠定…

MPLS基础

1. MPLS原理与配置 MPLS基础 (1)MPLS概念 MPLS位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有网络层提供服务。 通过在数据链路层和网络层之间增加额外的MPLS头部,基于MPLS头部实现数据快速转发。 本课程仅介绍MPLS在…

天软特色因子看板 (2023.10 第05期)

该因子看板跟踪天软特色因子A05005(近一月单笔流涌金额占比(%),该因子为近一个月单笔流通金额占比因,用以刻画股票在收盘时,力资金在总交易金额中所占的比重。。 今日为该因子跟踪第05期,跟踪其在SW801030 (申万化工) 中的表现&am…

危险化工品出口注意事项及法规要求_箱讯科技

随着全球化工品市场的不断发展,危险化工品出口业务逐渐成为国际贸易的重要组成部分。然而,由于危险化工品具有潜在的危险性,出口过程中需严格遵守相关法规和注意事项,以确保运输安全和顺畅。本文将详细介绍危险化工品出口注意事项…

面试算法26:重排链表

问题 给定一个链表,链表中节点的顺序是L0→L1→L2→…→Ln-1→Ln,请问如何重排链表使节点的顺序变成L0→Ln→L1→Ln-1→L2→Ln-2→…? 分析 首先把链表分成前后两半。在示例链表中,前半段链表包含1、2、3这3个节点&#xff0c…

路径规划-learning

参考视频:【全】无人驾驶系列知识入门到提高 本文旨在对视频内容规划控制方面做一些学习记录,希望帮助有需要的人学习提高。不对处,望指正。 文章概要: 1 什么是规划 规划的本质、如何解决规划问题 2 传统的规划方法 机器人学基础…

基于Java的列车票务信息管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

C++入门之引用与内联函数

一、引用 1、初步理解 引用在语法上的理解就是起别名,用法就是在类型后面加&,例子:int a 1; int& b a; 上例所示,执行后,b就是a的别名,它们代表同一块空间,a的改变会影响b&#xff0…