高亮细节 highight
回顾
- 这个主动命令
autocmd
还是很不便的 - 关上时、保留时就会有主动执行的操作
-
主动命令有这么几大元素
{event}
触发事件{pattern}
文件模式{cmd}
具体执行命令{augroup}
命令组
- 主动命令能够新建、删除、列表、查问
- 还能够强制执行
-
有这个咱们能够
- 针对每种不同的文件的类型
- 定义相应的触发事件
- 而后执行各种各样的命令
- 不便操作
-
不过对于文件类型的高亮显示还是没有讲的特地分明
- 为什么
public
在java
文件外面就能够扭转色彩呢??🤔
- 为什么
色彩计划
git clone http://gitee.com/overmind1980/oeasyvim.git
cd oeasyvim
vi oeasy.java
- 字符串是棕色的
public
、void
是绿色的:colorscheme murphy
- 咱们发现在 murphy 色彩计划下
- 字符串不变色了
public
、void
也不变色了
查看配色
:hi
- 查看不到为什么
public
没有扭转色彩
语法文件 syntax
- 我要找到对于 java 语法定义 Syntax 的文件
java.vim
- 于是我搜寻一下
sudo find / -name java.vim
-
这三个 java.vim 都位于零碎的配置文件夹中
-
ftplugin 对应 java 的零碎插件
- ft 是 filetype
- plugin 是 插件
- /usr/share/vim/vim81/ftplugin/ 对应零碎的插件
- ~/.vim/ftplugin 对于用户的插件
- indent 对应 java 的零碎缩进
- syntax 对应 java 的零碎语法
-
ls /usr/share/vim/vim81/syntax/java.vim
vi /usr/share/vim/vim81/syntax/java.vim
查找 String
-
/String
- 找到 41 个匹配
-
/\<String\>
- 找到 3 个匹配
- 大概率 String 自身就是那个高亮元素
:q
退回到oeasy.java
设置高亮
:colorscheme murphy
-
:hi String ctermfg=brown
- hi 是 highlight
- String 是须要定义色彩的组名称
- cterm 是 color terminal foreground
- brown 是棕色
- String 的高亮设置胜利
- 咱们来剖析一下什么是 String
String 的定义
:e /usr/share/vim/vim81/syntax/java.vim
/\<String\>
/javaString
/\<javaString\>
:set wrap
- 大抵是定义了一个 region 区域 javaString
- 而后和让 javaString 连贯到了 String 上
-
在 syntax/java.vim 定义了各种区域 region
- 有些是关键字 keywords
- 有些是字符串 String
- 不过具体给这些定义好的区域上什么色彩
-
还是得配色文件来实现
- 比方 murphy.vim
- 在
murphy.vim
目前没有定义 String 这个区域的色彩 - 然而咱们在最初强行
hi String ctermfg=brown
了 - 难道
murphy.vim
就真没有String
区域的色彩定义么?
murphy.vim
sudo find / -name murphy.vim
vi /usr/share/vim/vim81/colors/murphy.vim
/String
sudo vi /usr/share/vim/vim81/colors/murphy.vim
- 在最末一行加上一句
- 保留 murphy.vim 并退出
vi oeasy.java
再切换到 murphy 配色- 设置胜利
- 咱们再来看看
public
等关键字
找到 public
vi /usr/share/vim/vim81/syntax/java.vim
/public
- public、protected 这些关键字都曾经被定义到了一个 javaScopeDecl 外面
- 鼠标放到
javaScopeDecl
上 按下*
- 咱们能够发现
javaScopeDecl
被定义为javaStorageClass
javaStorageClass
被定义为StorageClass
尝试批改
- 回到
oeasy.java
:hi StorageClass=cyan
- 批改胜利
sudo vi /usr/share/vim/vim81/colors/murphy.vim
- 在最初增加
:hi StorageClass=cyan
- 而后再关上
oeasy.java
- 试验胜利!!!
总结
-
咱们这次钻研了一下配色计划
- murphy 尽管配色难看
- 然而对于 java 的反对并不好
- 咱们对于 murphy 进行了批改
- 减少了
String
、StorageClass
色彩的定义 - 整体思路是在 syntax 中定义组
- 而后在配色计划中对于组进行色彩设置
- 可是 syntax 中如何定义组的呢?🤔
- 下次再说!