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

发布时间:2023年12月18日

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 END

augroup 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=8
        set shiftwidth=8
        set softtabstop=8
        set expandtab

endfunction

function! SetupUsrEnv()
        set tabstop=4
        set shiftwidth=4
        set softtabstop=4
        set expandtab
endfunction

augroup filetype_c
        autocmd!
        autocmd FileType *.c,*.h,*.cpp,*.cc call SetupCEnv()
augroup END

augroup filetype_python
        autocmd!
        autocmd FileType *.py,*.sh,*.csh,*.tcl,*.v call SetupUsrEnv()
augroup END

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

augroup filetype_usr
        autocmd!
        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 
文章来源:https://blog.csdn.net/sinat_32960911/article/details/135012383
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。