【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
在上面的配置中,我们首先定义了两个函数 SetupCEnvironment
和 SetupPythonEnvironment
。这些函数包含了文件类型特定的设置。然后我们定义了两个 augroup
块来包裹相关 autocmd
。autocmd!
命令清除了之前定义的同组自动命令,以避免重复。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 脚本markdown
或md
:Markdown 文件vim
:Vim 脚本tex
:LaTeX 文件make
:Makefile 文件conf
:配置文件
要查看 Vim 支持的所有文件类型,你可以查阅 Vim 的文档或是检查 Vim 的 filetype.vim
文件,该文件定义了文件名模式到文件类型的映射。通常,你可以在 Vim 的安装目录的 ftplugin
目录下找到与这些文件类型相关的插件。
在 Vim 中,你可以使用以下命令查看当前打开的文件的文件类型:
:set filetype?
或者使用:
:echo &filetype
相关文章:
【vim 学习系列文章 13.1 -- 自动命令autocmd 根据文件类型设置vim参数】
文章目录 autocmd 根据文件类型配置vim参数vim 文本类型 autocmd 根据文件类型配置vim参数 在 Vim 中,你可以使用 autocmd (自动命令)来根据文件类型自动执行特定的函数。首先,你需要定义这些函数,然后使用 autocmd 与…...
算法基础概念之数据结构
邻接表 每个点作为头节点接一条链表 链表中元素均为该头节点指向的点 优先队列 参数: ①储存元素类型 ②底层使用的存储结构(一般为vector) ③比较方式(默认小于)...
解决ES伪慢查询
一、问题现象 服务现象 服务接口的TP99性能降低 ES现象 YGC:耗时极其不正常, 峰值200次,耗时7sFULL GC:不正常,次数为1但是频繁,STW 5s慢查询:存在慢查询5 二 解决过程 1、去除干扰因素 从现象上看应用是由于某种…...
关于Ubuntu22.04恢复误删文件的记录
挂载在Ubuntu22.04下的固态盘有文件被误删了,该固态盘是ntfs格式的。 在网上找了很多教程,最后决定用TestDisk工具进行恢复。 现记录如下: Ubuntu安装testdisk sudo apt-get install testdisk运行testdisk sudo testdisk得到 我选择的是…...
Docker笔记:Docker Swarm, Consul, Gateway, Microservices 集群部署
关于 Consul 服务 Consul是Go语言写的开源的服务发现软件Consul具有服务发现、健康检查、 服务治理、微服务熔断处理等功能 Consul 部署方式1: 直接在linux 上面部署 consul 集群 1 )下载 在各个服务器上 下载 consul 后解压并将其目录配置到环境变量中ÿ…...
浅析AI视频分析与视频管理系统EasyCVR平台及场景应用
人工智能的战略重要性导致对视频智能分析的需求不断增加。鉴于人工智能视觉技术的巨大潜力,人们的注意力正在从传统的视频监控转移到计算机视觉的监控过程自动化。 1、什么是视频分析? 视频分析或视频识别技术,是指从视频片段中提取有用信息…...
跨站点分布式多活存储建设方案概述
1-伴随着私有云、海量非结构数据的爆炸性增长,软件定义存储已经成为用户构建“敏捷IT” 架构的数据基石,同时越来越多的关键业务接入“敏捷IT” 架构。在分布式软件定义存储的产品架构下,怎样既保证对爆炸数据量的平稳承接,又能对…...
Github 2023-12-16开源项目日报Top10
根据Github Trendings的统计,今日(2023-12-16统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目2非开发语言项目2TypeScript项目1Jupyter Notebook项目1Go项目1PHP项目1JavaScript项目1C#项目1 精…...
c++ 中多线程的相关概念与多线程类的使用
1、多线程相关概念 1.1 并发、并行、串行 并发(Concurrent):并发是指两个或多个事件在同一时间间隔内运行。在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机…...
深入理解 hash 和 history:网页导航的基础(下)
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
腾讯文档助力CRM集成:无代码连接电商与广告
腾讯文档API的简介与优势 腾讯文档API是一个强大的工具,它允许企业通过简单的无代码开发来实现与电商平台和客服系统的智能连接。这种连接不仅提高了工作效率,还优化了数据管理。使用腾讯文档智能表,商家可以享受多样的列类型、多维视图展示…...
学习使用echarts漏斗图的参数配置和应用场景
学习使用echarts漏斗图的参数配置和应用场景 前言什么是漏斗图漏斗图的特点及应用场景漏斗图的特点漏斗图常见的的应用场景: echarts中漏斗的常用属性echart漏斗代码美化漏斗图样式1、设置标题字体大小2、设置标签样式3、设置漏斗图为渐变颜色4、设置高亮效果5、设置…...
npm ,yarn 更换使用国内镜像源,阿里源,清华大学源
在平时开发当中,我们经常会使用 Npm,yarn 来构建 web 项目。但是npm默认的源的服务器是在国外的,如果没有梯子的话。会感觉特别特别慢,所以,使用国内的源是非常有必要的。 在这里插入图片描述 Nnpm, yarn …...
vue+react题集整理
1.Typescript中 interface 和 type 的差别是什么? interface只能用来描述对象类型 type可以描述任何类型组合 type后边需要有 interface后边没有 当多次使用相同名称定义一个 interface 时,它们会自动合并为一个接口。同名属性的不能进行类型覆盖修改&am…...
线程池ThreadPoolExecutor详解
线程池ThreadPoolExecutor详解 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们深入研究Java中线程池的强大工具——ThreadPoolExecutor,解析它的工作原理、配置参数…...
elasticsearch|大数据|kibana的安装(https+密码)
前言: kibana是比较好安装的,但https密码就比较麻烦一些了,下面将就如何安装一个可在生产使用的kibana做一个简单的讲述 一, kibana版本和下载地址 这里我想还是强调一下,kibana的版本需要和elasticsearch的版本一…...
vue javascript tree 层级数据处理
层级数据是有父子关系的数组,示例: const treeData [{id: 1b7e8e98cb1d4a1f81e4fe2dfd9a8458,name: 层级1,parentId: null,children: [{id: 0d45dd5bb4c14d64a3ab0b738add4b24,name: 层级1-1,parentId: 1b7e8e98cb1d4a1f81e4fe2dfd9a8458,children: [{…...
WPF仿网易云搭建笔记(4):信息流控制之消息订阅
文章目录 专栏和Gitee仓库前言消息订阅最简单的案例简单用例父组件订阅子组件回调 结果 消息订阅机制消息token是A还是B?传递消息的载体。双重token重复订阅问题 结论 专栏和Gitee仓库 WPF仿网易云 Gitee仓库 WPF仿网易云 CSDN博客专栏 前言 上一篇文章中,我们简单…...
持续集成交付CICD:GitLabCI操作Harbor仓库
目录 一、实验 1.GitLabCI操作Harbor仓库 二、问题 1.gitlab-runner连接docker daemon报错 一、实验 1.GitLabCI操作Harbor仓库 (1)修改GitLabCI共享库代码并提交到mater CI.yaml .pipelineInit:tags:- buildstage: .prevariables:GIT_CHECKOUT: …...
[C++]——学习模板
了解模板——初阶 前言:一、模板1.1 什么是模板1.2 模板的概念1.3 模板可以做什么1.4 泛型模板 二、函数模板2.1 函数模板概念和格式2.2 函数模板原理2.3 函数模板实例化2.3.1 隐式实例化2.3.2 显式实例化 2.4 模板参数的匹配原则2.5 函数模板声明定义分离 三、类模…...
大数据技术14:FlinkCDC数据变更捕获
前言:Flink CDC是Flink社区开发的flink-cdc-connectors 组件,这是⼀个可以直接从 MySQL、PostgreSQL 等数据库直接读取全量数据和增量变更数据的 source 组件。 https://github.com/ververica/flink-cdc-connectors 一、CDC 概述 CDC 的全称是 Change …...
SpringDataRedis 基本使用
1.1 简介 1.1.1 概述 Spring Data 中有一个成员 Spring Data Redis,他提供了 RedisTemplate 可以在 Spring 应用中更简便的访问 Redis 以及异常处理及序列化,支持发布订阅等操作。 1.2 RedisTemplate 常见 API RedisTemplate 针对 jedis 客户端中大…...
蓝牙物联网智慧工厂解决方案
蓝牙物联网智慧工厂解决方案是一种针对工厂管理的智能化解决方案,通过蓝牙、物联网、大数据、人工智能等技术,实现工厂人员的定位、物资的定位管理、车间的智慧巡检、智慧安防以及数据的可视化等功能。 蓝牙物联网智慧工厂解决方案构成: 人员…...
html的学习笔记
开发工具:vscode 文字标签 h1:一级标题,h2:二级标题h6 p:段落标签 hr:分隔线 br:换行 strong/b:文字加粗 ins/u:下划线 em/i:倾斜 del/s:删除线 媒体标签 图片…...
每日一道算法题 8(2023-12-16)
题目描述 给定一个仅包含0和1的n*n二维矩阵 请计算二维矩阵的最大值 计算规则如下 每行元素按下标顺序组成一个二进制数(下标越大约排在低位), 二进制数的值就是该行的值,矩阵各行之和为矩阵的值 允许通过向左或向右整体循环移动每个元素来改变元素在行…...
Unity项目优化案例二
本文地址:https://blog.csdn.net/t163361/article/details/135024136 针对工作中遇到的优化问题,记录一下,给大家优化自己的项目提供一些思路。 公司产品最近正给国内某大型赛事做支撑服务暴露出不少问题。 使用环境 Unity 2021.3.0f1 cpu…...
如何发布自定义 npm 组件包
准备工作 1. 注册 npm 账号 还没有 npm 账号?去官网注册: https://www.npmjs.com 需要记住用户名、密码、邮箱,后面需要用到。 2. 查看本地 npm 镜像,如果不是默认的,需要改回来 npm config get registry重置镜像路…...
iOS_给View的部分区域截图 snapshot for view
文章目录 1.将整个view截图返回image:2.截取view的部分区域,返回image:3.旧方法:4.Tips参考: 1.将整个view截图返回image: 这些 api 已被废弃,所以需要判断 iOS 版本 写两套代码: R…...
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
目录 回退N帧协议GBN 介绍 无差错情况 累积确认 有差错情况 发送窗口尺寸 小结 练习 解析 示意图 上篇中所介绍的停止-等待协议的信道利用率很低;若出现超时重传,则信道利用率更低。 如果发送方在收到接收方的确认分组之前可以连续发送多个数…...
IDEA debug窗口左边工具栏隐藏与显示
今天在debug排查代码的时候一不小心点到哪里,结果变成这样 我们可以这样恢复,右键Debug 点击show Toolbar...
南京响应式网站制作/网络营销推广论文
if True: x 15 print(x)print(x) # 可见 if 语句,不是一个代码块,因为代码块有独立的作用域,代码块结束时,会释放变量l1 [1,2,3,4]print(id(l1))l2 [1]print(id(l2))def func4(li): return li[:2] # 如果能够切片…...
cdn中国设计网/seo关键字排名
摘自:http://blog.chinaunix.net/uid-24194439-id-90779.htmlint *p[10] p是一个指针数组,数组内有10个int *指针 int(*p)[10] p是一个指针,指向有10个int变量的数组转载于:https://www.cnblogs.com/zhangxiaosong/p/3316579.html...
白沟做网站/企业网站设计制作
文章目录练习9.41练习9.42练习9.43练习9.44练习9.45练习9.46练习9.47练习9.48练习9.49练习9.50练习9.41 编写程序,从一个vector初始化一个string。 vector<char> v{ h, e, l, l, o }; string str(v.cbegin(), v.cend());练习9.42 假定你希望每次读取一个字符存…...
北京万户网络技术有限公司/windows优化
简介 如何让代码执行得更快,如何充分发挥多核CPU的性能,是程序员需要思考的问题. 本文通过简单易懂的实例,让大家快速了解C#多线程的基本方法. 参考文档:http://www.cnblogs.com/yunfeifei/p/3993401.html实例 using System; using System.Diagnostics; using System.Threading…...
合肥网站seo服务/如何优化关键词排名到首页
剑指 Offer 10- II. 青蛙跳台阶问题 题目链接:题目链接 这个题和斐波那契数列是一个问题,用的是斐波那契的递推公司。经典爬楼梯问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答…...
网站建设与管理管理课程/网络营销策划活动方案
L1和L2正则都是比较常见和常用的正则化项,都可以达到防止过拟合的效果。L1正则化的解具有稀疏性,可用于特征选择。L2正则化的解都比较小,抗扰动能力强。 L2正则化 对模型参数的L2正则项为 即权重向量中各个元素的平方和,通常取1/2…...