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

相关文章

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An