当前位置: 首页 > news >正文

【vim 学习系列文章 13.1 -- 自动命令autocmd 根据文件类型设置vim参数】

文章目录

  • autocmd 根据文件类型配置vim参数
      • vim 文本类型

autocmd 根据文件类型配置vim参数

在 Vim 中,你可以使用 autocmd (自动命令)来根据文件类型自动执行特定的函数。首先,你需要定义这些函数,然后使用 autocmd 与文件类型模式匹配来调用这些函数。

以下是一个基本的 Vim 配置示例,该配置在 ~/.vimrc 文件中定义了两个函数,一个用于 C 类型文件,另一个用于 Python 类型文件。然后它使用 autocmd 来根据文件后缀名调用相应的函数。

" 在 ~/.vimrc 文件中定义你的函数" 函数用于 C 文件的配置 
function! SetupCEnvironment() " C 相关的配置 set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab " 其他 C 文件类型特定的设置... 
endfunction" 函数用于 Python 文件的配置
function! SetupPythonEnvironment()" Python 相关的配置 set tabstop=4 set shiftwidth=4 set softtabstop=4 set noexpandtab " 其他 Python 文件类型特定的设置...
endfunction" 设置文件类型特定的自动命令 
" 注意:这里的模式 '*.c' 和 '*.py' 与文件后缀名匹配augroup filetype_c autocmd! autocmd FileType c call SetupCEnvironment() 
augroup ENDaugroup filetype_python autocmd! autocmd FileType python call SetupPythonEnvironment() 
augroup END

在上面的配置中,我们首先定义了两个函数 SetupCEnvironmentSetupPythonEnvironment。这些函数包含了文件类型特定的设置。然后我们定义了两个 augroup 块来包裹相关 autocmdautocmd! 命令清除了之前定义的同组自动命令,以避免重复。FileType 事件用于当 Vim 检测到特定文件类型时触发。

注意,Vim 的文件类型检测机制通常是根据文件的内容和扩展名来确定的。确保你的 Vim 已经启用了文件类型侦测功能,可以在 .vimrc 中包含以下命令来启用:

filetype plugin indent on 

可以使用逗号来分割多个模式,以匹配多种类型的文件:

function! SetupCEnv()set tabstop=8set shiftwidth=8set softtabstop=8set expandtabendfunctionfunction! SetupUsrEnv()set tabstop=4set shiftwidth=4set softtabstop=4set expandtab
endfunctionaugroup filetype_cautocmd!autocmd FileType *.c,*.h,*.cpp,*.cc call SetupCEnv()
augroup ENDaugroup filetype_pythonautocmd!autocmd FileType *.py,*.sh,*.csh,*.tcl,*.v call SetupUsrEnv()
augroup END

如果上面配置没有生效,可以进行单独配置,如下:

augroup filetype_usrautocmd!autocmd FileType python call SetupUsrEnv()autocmd FileType sh call SetupUsrEnv()autocmd FileType verilog call SetupUsrEnv()autocmd FileType csh call SetupUsrEnv()autocmd FileType tcl make call SetupUsrEnv()autocmd FileType make call SetupUsrEnv()
augroup END

vim 文本类型

Vim 通过文件类型(filetype)来决定如何为不同类型的文件启用特定的插件、语法高亮和缩进规则。Vim 支持的文件类型非常多,以下是一些常见的文件类型实例:

  • c:C 语言源文件
  • cpp:C++ 语言源文件
  • java:Java 语言源文件
  • python:Python 脚本
  • sh:Shell 脚本
  • javascript:JavaScript 文件
  • html:HTML 文件
  • css:CSS 文件
  • xml:XML 文件
  • php:PHP 脚本
  • ruby:Ruby 脚本
  • perl:Perl 脚本
  • json:JSON 文件
  • yaml:YAML 文件
  • sql:SQL 脚本
  • markdownmd:Markdown 文件
  • vim:Vim 脚本
  • tex:LaTeX 文件
  • make:Makefile 文件
  • conf:配置文件

要查看 Vim 支持的所有文件类型,你可以查阅 Vim 的文档或是检查 Vim 的 filetype.vim 文件,该文件定义了文件名模式到文件类型的映射。通常,你可以在 Vim 的安装目录的 ftplugin 目录下找到与这些文件类型相关的插件。

在 Vim 中,你可以使用以下命令查看当前打开的文件的文件类型:

:set filetype? 

或者使用:

:echo &filetype 
http://www.lryc.cn/news/260883.html

相关文章:

  • 算法基础概念之数据结构
  • 解决ES伪慢查询
  • 关于Ubuntu22.04恢复误删文件的记录
  • Docker笔记:Docker Swarm, Consul, Gateway, Microservices 集群部署
  • 浅析AI视频分析与视频管理系统EasyCVR平台及场景应用
  • 跨站点分布式多活存储建设方案概述
  • Github 2023-12-16开源项目日报Top10
  • c++ 中多线程的相关概念与多线程类的使用
  • 深入理解 hash 和 history:网页导航的基础(下)
  • 腾讯文档助力CRM集成:无代码连接电商与广告
  • 学习使用echarts漏斗图的参数配置和应用场景
  • npm ,yarn 更换使用国内镜像源,阿里源,清华大学源
  • vue+react题集整理
  • 线程池ThreadPoolExecutor详解
  • elasticsearch|大数据|kibana的安装(https+密码)
  • vue javascript tree 层级数据处理
  • WPF仿网易云搭建笔记(4):信息流控制之消息订阅
  • 持续集成交付CICD:GitLabCI操作Harbor仓库
  • [C++]——学习模板
  • 大数据技术14:FlinkCDC数据变更捕获
  • SpringDataRedis 基本使用
  • 蓝牙物联网智慧工厂解决方案
  • html的学习笔记
  • 每日一道算法题 8(2023-12-16)
  • Unity项目优化案例二
  • 如何发布自定义 npm 组件包
  • iOS_给View的部分区域截图 snapshot for view
  • 计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
  • IDEA debug窗口左边工具栏隐藏与显示
  • WPF 基于TableControl的页面切换