语法没错,vim却有时不着色(高亮显示)的原因

2024-08-24 06:38

本文主要是介绍语法没错,vim却有时不着色(高亮显示)的原因,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

linux下vim编辑器,在编辑文件时,明明语法没有问题,有时候它能着色高亮显示,有时候就不行,这曾让我对linux的整体印象大打折扣。你遇到过吗?

大家都是做软件的,应该明白这种完美主义心理。就比如设计一个软件,只要是正式发布的,我愿意让它“麻雀虽小五脏俱全”,可以功能不强大,可以不是最好看,但必须完整。安装是否容易顺畅挑环境?卸载是否顺畅不留垃圾?按F1是否能调出适宜的帮助手册?是否禁得起时间的推敲?……想当年大三时用pb做的数据库小软件,在windows下配置odbc,要在安装过程中自动实现,并且配置的驱动和数据源和手动在odbc管理器下一样优秀。相信很多同仁都有过类似的经历和感受。

所以遇到vim偶尔不着色的问题后,我就跟它较上劲了。网上也看过一些前辈的文章,有些是配置问题,但我要解决的不是。举个例子,apache配置文件中,类似LoadModule这样的关键字是可以高亮显示的,但有时候不行。比如编译安装apache,/usr/local/apache/conf/extra下的各种conf文件,明明语法没有问题,它就是不着色!后来无意中发现跟文件名有关,比如httpd-ssl.conf,改名为ssl.conf再打开,它就有着色了。再比如我新建一个httpd-php-fpm.conf就没着色,改名为php.conf它就有着色了。所以我认定,这一定跟vim配置有关。

我曾经使用rpm -ql想知道vim有哪些配置文件,后来发现它有个/usr/share/vim/vim74/syntax目录,下面有很多文件,找起来麻烦大了,当然也可以用个可以在目录下查找文件内容的工具去验证。但是我的方法是:

先打开一个有着色的文件,在命令模式下输入:scriptnames看看它到底加载了什么。果然看到有一个/usr/share/vim/vim74/filetype.vim,于是打开一看,好大一坨代码。终于在里面找到了答案。

搜索“.conf”和“php”可以看到,原来不仅仅与文件名有关,还与路径有关。下面截图看一下局部代码:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSn5qmY,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSn5qmY,size_20,color_FFFFFF,t_70,g_se,x_16

54708754a1494852a7ae51953132c2a7.png

 所以,一目了然。试一试,把原先不能着色的文件复制到/etc/httpd目录下,或者改名为php.conf,就有着色了。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSn5qmY,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSn5qmY,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSn5qmY,size_20,color_FFFFFF,t_70,g_se,x_16

 本文完。

这篇关于语法没错,vim却有时不着色(高亮显示)的原因的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101731

相关文章

pip install jupyterlab失败的原因问题及探索

《pipinstalljupyterlab失败的原因问题及探索》在学习Yolo模型时,尝试安装JupyterLab但遇到错误,错误提示缺少Rust和Cargo编译环境,因为pywinpty包需要它... 目录背景问题解决方案总结背景最近在学习Yolo模型,然后其中要下载jupyter(有点LSVmu像一个

SpringBoot中的404错误:原因、影响及解决策略

《SpringBoot中的404错误:原因、影响及解决策略》本文详细介绍了SpringBoot中404错误的出现原因、影响以及处理策略,404错误常见于URL路径错误、控制器配置问题、静态资源配置错误... 目录Spring Boot中的404错误:原因、影响及处理策略404错误的出现原因1. URL路径错

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结

MySQL的索引失效的原因实例及解决方案

《MySQL的索引失效的原因实例及解决方案》这篇文章主要讨论了MySQL索引失效的常见原因及其解决方案,它涵盖了数据类型不匹配、隐式转换、函数或表达式、范围查询、LIKE查询、OR条件、全表扫描、索引... 目录1. 数据类型不匹配2. 隐式转换3. 函数或表达式4. 范围查询之后的列5. like 查询6