语法没错,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

相关文章

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

IDEA中Maven Dependencies出现红色波浪线的原因及解决方法

《IDEA中MavenDependencies出现红色波浪线的原因及解决方法》在使用IntelliJIDEA开发Java项目时,尤其是基于Maven的项目,您可能会遇到MavenDependenci... 目录一、问题概述二、解决步骤2.1 检查 Maven 配置2.2 更新 Maven 项目2.3 清理本

Java空指针异常NullPointerException的原因与解决方案

《Java空指针异常NullPointerException的原因与解决方案》在Java开发中,NullPointerException(空指针异常)是最常见的运行时异常之一,通常发生在程序尝试访问或... 目录一、空指针异常产生的原因1. 变量未初始化2. 对象引用被显式置为null3. 方法返回null

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

idea中project的显示问题及解决

《idea中project的显示问题及解决》:本文主要介绍idea中project的显示问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录idea中project的显示问题清除配置重China编程新生成配置总结idea中project的显示问题新建空的pr

使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案

《使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案》在SpringBoot应用中,我们经常使用​​@Cacheable​​注解来缓存数据,以提高应用的性能... 目录@Cacheable注解Redis时,Redis宕机或其他原因连不上,继续调用原方法的解决方案1

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数