回忆上节课内容🤔
检测文件类型
- 首先需要检测文件类型
-
:filetype
可以设置当前文件类型检测信息
-
:filetype on
检测文件扩展名
-
:filetype off
取消检测文件扩展名
- 如果是
.c
- 并且
:filetype on
- 就可以检测文件类型为
.c
- 那我怎么知道
filetype
是什么呢?
-
:set filetype?
- 但是如何单独设置
.c
文件缩进为 8
呢?
文件类型缩进设置
- 我们书写一个
demo.c
- 可以发现这个文件 tab 是对应着 4 个空格的
- 如果想单独设置
.c
文件类型的缩进的话
- 需要打开文件类型缩进的开关
:filetype indent on
找到缩进配置文件
- 系统的配置文件的位置在
/usr/share/vim/vim81/indent/
-
c
对应 c.vim
-
java
对应 java.vim
-
html
对应 html.vim
- 不同的文件类型可以设置不同的缩进
-
c
缩进为 8
-
java
缩进为 4
-
html
缩进为 2
- 找到了
/usr/share/vim/vim81/indent/c.vim
就可以设置c
的缩进
- 在最后加上
:set et sw=8 ts=8 sts=8 ai
- 然后退出并重新打开
demo.c
- 再g g = G
- 就可以按照新设置的
/usr/share/vim/vim81/indent/c.vim
来重新控制缩进了
更改文件类型
- 我们打开
demo.c
时,系统会检测他的文件类型
- 但是如果我们非要
硬
要说他是一个 java
文件会如何呢?🤪
:set filetype=java
- 文件对于
include
之类的语法高亮消失了
-
g g = G
- 让文件缩进的数量变回了
4
- 高亮可以根据文件类型而不同么?🤔
文件类型语法高亮
#找出所有的java.vim文件
sudo find / -name "java.vim"
- 在
indent
下的 java.vim
负责缩进
- 在
syntax
下的 java.vim
负责语法高亮
- 语法高亮的设置在
-
/usr/share/vim/vim81/syntax/
下面
-
:syntax on
可以设置关键词高亮,这个是所有语法高亮的根开关
文件类型的插件
- 除此之外,也可以加载
java
文件类型的的插件 plugin
- 文件类型插件可以设置一键编译运行、跳转到函数定义之类的
- 前提是
:set filetype plugin on
- 文件类型插件的设置在
-
/usr/share/vim/vim81/ftplugin/
下面
- ftplugin = FileType Plugin
- 回忆文件类型缩进和语法
- 在
indent
下的 java.vim
负责缩进
- 在
syntax
下的 java.vim
负责语法高亮
- 在
ftplugin
下的 java.vim
命名规则
- 除了对于每个用户都好使的高亮、缩进和插件之外
- 用户还可以设置只对于自己好使的高亮、缩进和插件
- 以
java
语言的插件来举例
- 系统通用文件夹
/usr/share/vim/vim81/ftplugin/java.vim
/usr/share/vim/vim81/ftplugin/java_xxx.vim
/usr/share/vim/vim81/ftplugin/java/xxx.vim
- 用户专用文件夹
~/.vim/ftplugin/java.vim
~/.vim/ftplugin/java_def.vim
-
~/.vim/ftplugin/java/header.vim
- 上面是命名的规则
文件夹不存在?
- 如果没有文件夹的话就要新建
:!mkdir -p ~/.vim/ftplugin
- 注意是
ftplugin
而不是 plugin
-
plugin
里面的插件全部都被加载
-
ftplugin
里面的插件根据文件类型加载
尝试分文件类型进行控制
- 保存后
- 打开 java 文件时
- 状态栏告诉我这是 java 文件
- 第三行 set statusline=[oeasy-java]%F%m
- 打开 css 文件时
- 状态栏告诉我这是 css 文件
- 第三行 set statusline=[oeasy-css]%F%m
- 都设置好之后
- 分别打开java文件和css文件
强行指定
- 如果我偏说
css
文件是 java
文件会如何呢?
- 可以注意到状态栏的变化
- 由于不同文件类型
filetype
的 syntax
文件不同
- 用
css
的语法去标注 java
的高亮组
- 所以高亮显示的状态也不同
总结
- 根据扩展名我们可以设置某些特定类型文件的配置
- 相关文件类型的设置放在相应的文件夹里
- 文件类型缩进文件夹
/usr/share/vim/vim81/indent/
- 文件类型语法高亮文件夹
/usr/share/vim/vim81/syntax/
- 文件类型插件文件夹
- 系统通用文件夹
/usr/share/vim/vim81/ftplugin/java.vim
/usr/share/vim/vim81/ftplugin/java_xxx.vim
/usr/share/vim/vim81/ftplugin/java/xxx.vim
- 用户专用插件文件夹
~/.vim/ftplugin/java.vim
~/.vim/ftplugin/java_def.vim
-
~/.vim/ftplugin/java/header.vim
- 在 文件夹
~/.vim/ftplugin
中 的 html.vim
的设置
- 只针对
html
- 包括文件的缩进、配色、语法高亮、行号、状态栏等
-
:filetype indent on
文件类型缩进生效
-
:filetype syntax on
文件类型语法高亮生效
-
:filetype plugin on
文件类型插件生效
教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!
程序员进阶攻略 -〔胡峰〕
玩转Spring全家桶 -〔丁雪丰〕
软件工程之美 -〔宝玉〕
Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕
苏杰的产品创新课 -〔苏杰〕
数据中台实战课 -〔郭忆〕
微信小程序全栈开发实战 -〔李艺〕
大厂设计进阶实战课 -〔小乔〕
AI大模型之美 -〔徐文浩〕