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


请阅读【嵌入式开发学习必备专栏 之 Vim】


下篇文章:【vim 学习系列文章 11 – vim filetype | execute | runtimepath 详细介绍】
上篇文章:【vim 学习系列文章 9 – .vim 脚本文件开发学习】

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

这将会取消所有的匹配。

下篇文章:【vim 学习系列文章 11 – vim filetype | execute | runtimepath 详细介绍】
上篇文章:【vim 学习系列文章 9 – .vim 脚本文件开发学习】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SpaceVim 是一个社区驱动的模块化 Vim/Neovim 配置集合,以模块的方式组织管理插件以 及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全, 语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱 即用的 Vim-IDE。 特性: 1、多光标 Iedit 模式: SpaceVim 内置了一种特殊的模式,Iedit 模式,这种模式提供了多光标支持,不同于已有插件的实现, 该模式支持两种状态:iedit-Normal 和 iedit-Insert。默认情况下,多光标输入时,iedit-normal 模式状态栏时是红色,而 iedit-insert 模式时是绿色,当然这由所选择的主题决定。 2、高亮光标下的函数: SpaceVim 支持高亮当前光标函数,并且启动一个特殊模式,在该模式下可以快捷地切换高亮区域 (方法内、屏幕内、整个文件内),并且可以快速在高亮函数间跳转、切换高亮状态(高亮、取消高亮), 并且可以根据已选择的位置进入 Iedit 模式。 3、实时代码检索: SpaceVim 自带的 FlyGrep 这个插件可以根据输入实时搜索项目代码,当然需要借助后台搜索工具, 目前支持的工具有:ag,rg,ack,pt 和 grep,用户可任意选择一个喜欢的工具。 4、快捷键辅助导航: 在 SpaceVim ,所有快捷键都有导航系统,你不需要记忆任何快捷键。初次使用时可根据快捷键提示进行操作。当按下空格键或者 g、z 以及 s 按键时,导航就会自动出现。当你记住了快捷键,输入比较快时,导航则不会出现。 5、快捷键描述系统 通过快捷键描述系统,你可以清楚的了解到一个快捷键的功能,并且可以快速跳转到快捷键定义的位置; 比如,通过 SPC h d k 启动快捷键描述系统,然后按下所需描述快捷键 SPC b n,就会弹出一个描述 窗口,在改窗口可以通过快捷键 gd 快速跳转到快捷键定义处。 6、异步插件管理器: SpaceVim 利用了 Vim 8 和 Neovim 最新的异步机制,实现了异步插件下载及更新,而插件运行管理采用的是 dein.vim
起步 jusr 01.txtj 关于本手册 jusr 02.txtj Vim第一步 jusr 03.txtj 移动 jusr 04.txtj 小幅改动 jusr 05.txtj 定制你的Vim jusr 06.txtj 使用语法高亮 jusr 07.txtj 编辑多个文件 jusr 08.txtj 分隔窗口 jusr 09.txtj 使用GUI jusr 10.txtj 大刀阔斧 jusr 11.txtj 灾难恢复 jusr 12.txtj 奇技淫巧 高效编辑 jusr 20.txtj 加速冒号命令 jusr 21.txtj 进退之间 jusr 22.txtj 查找要编辑的文件 jusr 23.txtj 非文本文件 jusr 24.txtj 快速键入 jusr 25.txtj 编辑格式化文本 jusr 26.txtj 重复重复, 再重复 jusr 27.txtj 搜索命令和模式 jusr 28.txtj 折行 8 9 第00章目录 jusr 29.txtj 之于程序 jusr 30.txtj 程序的编辑 jusr 31.txtj 探索GUI 打造Vim jusr 40.txtj 定义新命令 jusr 41.txtj Vim脚本 jusr 42.txtj 增加新菜单 jusr 43.txtj 文件类型 jusr 44.txtj 自定义语法高亮文件 jusr 45.txtj 选择语言 运转Vim jusr 90.txtj 安装Vim 可以在下面的地址找到以单个文件组织的可打印版的HTML或PDF格 式用户手册: http://vimdoc.sf.net 起步 请从头至尾细读本章, 本章讲述Vim的基本命令. jusr 01.txtj 关于本手册 j01.1j 两套帮助 j01.2j 关于安装 j01.3j 使用Vim教程 j01.4j 版权 jusr 02.txtj Vim第一步 j02.1j 首次运行Vim j02.2j 插入文本 9 10 第00章目录 j02.3j 移动光标 j02.4j 删除字符 j02.5j 撤消与重做 j02.6j 其它编辑命令 j02.7j 退出 j02.8j 求助 jusr 03.txtj 移动 j03.1j 以Word为单位的光标移动 j03.2j 将光标移到行首或行尾 j03.3j 将光标移动到指定的字符上 j03.4j 将光标移动到匹配的括号上 j03.5j 将光标移动到指定的行上 j03.6j 告诉你当前位置 j03.7j 滚屏 j03.8j 简单的搜索 j03.9j 简单的模式搜索 j03.10j 使用标记 jusr 04.txtj 小幅改动 j04.1j 操作符命令和位移 j04.2j 改变文本 j04.3j 重复改动 j04.4j Visual模式 j04.5j 移动文本 j04.6j 复制文本 j04.7j 使用剪贴板 j04.8j 文本对象 j04.9j 替换模式 j04.10j 结论 jusr 05.txtj 定制你的Vim j05.1j vimrc文件 j05.2j vimrc示例 j05.3j 简单的映射 j05.4j 增加一个plugin j05.5j 增加一个帮助文件 j05.6j 选项设置窗口 j05.7j 常用选项 10 11 第00章目录 jusr 06.txtj 使用语法高亮 j06.1j 打开色彩 j06.2j 没有色彩或色彩错误? j06.3j 不同的颜色 j06.4j 有色或无色 j06.5j 彩色打印 j06.6j 进一步的学习 jusr 07.txtj 编辑多个文件 j07.1j 编辑另一个文件 j07.2j 文件列表 j07.3j 切换到另一文件 j07.4j 备份 j07.5j 在文件间复制粘贴 j07.6j 查看文件 j07.7j 更改文件名 jusr 08.txtj 分隔窗口 j08.1j 分隔一个窗口 j08.2j 为另一个文件分隔出一个窗口 j08.3j 窗口大小 j08.4j 垂直分隔 j08.5j 移动窗口 j08.6j 针对所有窗口操作的命令 j08.7j 使用vimdiff查看不同 j08.8j 其它 jusr 09.txtj 使用GUI j09.1j GUI的各部分 j09.2j 使用鼠标 j09.3j 剪贴板 j09.4j 选择模式 jusr 10.txtj 大刀阔斧 j10.1j 命令的记录与回放 j10.2j 替换 11 12 第00章目录 j10.3j 使用作用范围 j10.4j 全局命令 j10.5j 可视块模式 j10.6j 读写文件的部分内容 j10.7j 格式化文本 j10.8j 改变大小写 j10.9j 使用外部程序 jusr 11.txtj 灾难恢复 j11.1j 基本方法 j11.2j 交换文件在哪? j11.3j 是不是死机了? j11.4j 进一步的学习 jusr 12.txtj 奇技淫巧 j12.1j 替换一个word j12.2j 将"Last, First"改为"First Last" j12.3j 排序 j12.4j 反转行序 j12.5j 统计字数 j12.6j 查找帮助页1 j12.7j 消除多余空格 j12.8j 查找一个word在何处被引用 高效编辑 此类主题可以独立阅读 jusr 20.txtj 加速冒号命令 j20.1j 命令行编辑 j20.2j 命令行缩写 j20.3j 命令行补齐 j20.4j 命令行历史记录 j20.5j 命令行窗口 1译: 仅对Unix类系统有意义 12 13 第00章目录 jusr 21.txtj 进退之道 j21.1j 挂起与恢复 j21.2j 执行shell命令 j21.3j 记住相关信息: viminfo j21.4j 会话 j21.5j 视图 j21.6j 模式行 jusr 22.txtj 查找要编辑的文件 j22.1j 文件浏览器 j22.2j 当前目录 j22.3j 查找一个文件 j22.4j 缓冲区列表 jusr 23.txtj 非文本文件 j23.1j DOS, Mac 和Unix格式的文件 j23.2j 来自因特网的文件 j23.3j 加密文件 j23.4j 二进制文件 j23.5j 压缩文件 jusr 24.txtj 快速键入 j24.1j 校正 j24.2j 显示匹配字符 j24.3j 自动补全 j24.4j 重复录入 j24.5j 从其它行复制 j24.6j 插入一个寄存器的内容 j24.7j 缩写 j24.8j 键入特殊字符 j24.9j 键入连字符 j24.10j Normal模式命令 jusr 25.txtj 编辑格式化文本 j25.1j 段行 j25.2j 文本对齐 13 14 第00章目录 j25.3j 缩进和制表符 j25.4j 处理长行 j25.5j 编辑表格 jusr 26.txtj 重复重复, 再重复 j26.1j Visual模式的重复 j26.2j 加与减 j26.3j 对多个文件做同样的改动 j26.4j 在一个shell脚本使用Vim jusr 27.txtj 搜索命令和模式 j27.1j 忽略大小写 j27.2j 绕回文件头尾 j27.3j 偏移 j27.4j 多次匹配 j27.5j 多选一 j27.6j 字符范围 j27.7j 字符分类 j27.8j 匹配一个断行 j27.9j 例子 jusr 28.txtj 折行 j28.1j 什么是折行? j28.2j 手工折行 j28.3j 使用折行 j28.4j 保存和恢复折行 j28.5j 根据缩进的折行 j28.6j 根据标记的折行 j28.7j 根据语法的折行 j28.8j 根据表达式折行 j28.9j 折叠未有改变的行 j28.10j 使用何种折行方法? jusr 29.txtj 之于程序 j29.1j 使用tags j29.2j 预览窗口 14 15 第00章目录 j29.3j 在程序移动 j29.4j 查找全局标识符 j29.5j 查找局部标识符 jusr 30.txtj 程序的编辑 j30.1j 编译 j30.2j C程序的缩进 j30.3j 自动缩进 j30.4j 其它语言的缩进 j30.5j 跳格键与空格 j30.6j 注释的格式化 jusr 31.txtj 探索GUI j31.1j 文件浏览器 j31.2j 确认 j31.3j 菜单命令的快捷键 j31.4j Vim的窗口位置和大小 j31.5j 其它 调节VimVim如你所愿地工作 jusr 40.txtj 定义新命令 j40.1j 键映射 j40.2j 自定义冒号命令 j40.3j 自动命令 jusr 41.txtj Vim脚本 j41.1j 介绍 j41.2j 变量 j41.3j 表达式 j41.4j 条件语句 j41.5j 执行一个表达式 15 16 第00章目录 j41.6j 使用函数 j41.7j 函数定义 j41.8j 注意事项 j41.9j 定制一个plugin j41.10j 定制一个文件类型相关的plugin j41.11j 定制一个编译相关的plugin jusr 42.txtj 增加新菜单 j42.1j 介绍 j42.2j 菜单操作命令 j42.3j 其它 j42.4j 工具栏和弹出式菜单 jusr 43.txtj 文件类型 j43.1j 文件类型的插件 j43.2j 添加一种文件类型 jusr 44.txtj 自定义语法高亮文件 j44.1j 基本的语法命令 j44.2j 关键字 j44.3j 匹配 j44.4j 区域 j44.5j 嵌套 j44.6j 后续组 j44.7j 其它参数 j44.8j 聚簇 j44.9j 包含另一个语法文件 j44.10j 同步 j44.11j 安装一个语法文件 j44.12j 可移植语法文件的布局要求 jusr 45.txtj 选择语言 j45.1j 用于消息的语言 j45.2j 用于菜单的语言 j45.3j 使用另一种编码方法 j45.4j 编辑另类编码方案的文件 j45.5j 输入 16 17 第00章目录 运转Vim Vimming之前. jusr 90.txtj 安装Vim j90.1j Unix j90.2j MS-Windows j90.3j 升级 j90.4j 常见问题 j90.5j 卸载Vim

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公CodingCos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值