欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Vim-vimrc 脚本文件表头设置

Vim-vimrc 脚本文件表头设置

2025/6/23 0:21:05 来源:https://blog.csdn.net/weixin_44726874/article/details/148760939  浏览:    关键词:Vim-vimrc 脚本文件表头设置

Vim-vimrc 脚本文件表头设置

文章目录

  • Vim-vimrc 脚本文件表头设置
        • 代码解释
          • 1. 设置作者名称
          • 2. 定义函数 `SetFileHeader`
            • 2.1 获取文件扩展名
            • 2.2 仅对指定文件类型进行处理
            • 2.3 设置 Shebang
            • 2.4 插入文件头内容
            • 2.5 移动光标并进入插入模式
          • 3. 自动命令设置

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Template Settings
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Auto-add file headers for Tcl, csh, tcsh, and Python files
let g:author_name = "backend"  " Customize your namefunction! SetFileHeader()let file_ext = expand('%:e')  " Get file extension" Only process specified file typesif index(['tcl', 'csh', 'tcsh', 'py'], file_ext) == -1returnendif" Set shebang based on file typeif file_ext == 'tcl'let shebang = '#!/usr/bin/tclsh'elseif file_ext == 'csh' || file_ext == 'tcsh'let shebang = '#!/bin/csh'elseif file_ext == 'py'let shebang = '#!/usr/bin/python3'endif" Insert header contentcall setline(1, shebang)call append(1, "# ------------------------------------")call append(2, "# Author: " . g:author_name)call append(3, "# Date:   " . strftime("%Y/%m/%d %H:%M:%S"))call append(4, "# ------------------------------------")call append(5, "# Description: ")call append(6, "# ------------------------------------")call append(7, "")" Position cursor at description linenormal Gstartinsert!
endfunction" Set autocommands for file creation
autocmd BufNewFile *.tcl,*.csh,*.tcsh,*.py call SetFileHeader()
代码解释

通过这段 Vim 配置脚本,我们成功地为特定类型的文件(如 Tcl、Csh、Tcsh 和 Python 文件)设置了一个自动添加文件头的功能。这个文件头包括了文件的 Shebang、作者、日期和描述等信息。利用 Vim 的自动命令和函数机制,我们能够轻松地为新创建的文件自动生成一个规范的头部注释,为代码的维护和协作提供了便利。

1. 设置作者名称
let g:author_name = "backend"  " Customize your name

这一行代码设置了一个全局变量 g:author_name,存储了作者的名称。在实际使用时,你可以将 "backend" 替换为你的名字,或者在 Vim 中设置为环境变量或其他方法来动态获取。

2. 定义函数 SetFileHeader
function! SetFileHeader()

这里定义了一个名为 SetFileHeader 的 Vim 函数,函数的作用是在创建文件时为文件添加头部注释。接下来,逐行解析函数内容:

2.1 获取文件扩展名
let file_ext = expand('%:e')  " Get file extension

expand('%:e') 用于获取当前文件的扩展名。% 是当前文件的路径,:e 表示提取文件的扩展名部分。例如,文件 example.py 的扩展名将是 py

2.2 仅对指定文件类型进行处理
if index(['tcl', 'csh', 'tcsh', 'py'], file_ext) == -1return
endif

这一段代码检查当前文件的扩展名是否在指定的列表中(tcl, csh, tcsh, py)。如果不是这些文件类型中的一种,函数直接返回,不进行任何操作。

2.3 设置 Shebang

根据文件扩展名,设置相应的 Shebang(脚本文件的解释器声明)。不同的文件类型对应不同的解释器:

if file_ext == 'tcl'let shebang = '#!/usr/bin/tclsh'
elseif file_ext == 'csh' || file_ext == 'tcsh'let shebang = '#!/bin/csh'
elseif file_ext == 'py'let shebang = '#!/usr/bin/python3'
endif
  • tcl 文件使用 #!/usr/bin/tclsh
  • cshtcsh 文件使用 #!/bin/csh
  • py 文件使用 #!/usr/bin/python3
2.4 插入文件头内容

接下来,使用 setline()append() 函数插入文件头内容:

call setline(1, shebang)
call append(1, "# ------------------------------------")
call append(2, "# Author: " . g:author_name)
call append(3, "# Date:   " . strftime("%Y/%m/%d %H:%M:%S"))
call append(4, "# ------------------------------------")
call append(5, "# Description: ")
call append(6, "# ------------------------------------")
call append(7, "")
  • setline(1, shebang):在文件的第一行插入 Shebang。
  • append():将注释行逐行添加到文件中,内容包括作者、日期、描述等。

strftime("%Y/%m/%d %H:%M:%S") 用于生成当前日期和时间,格式为 YYYY/MM/DD HH:MM:SS

2.5 移动光标并进入插入模式
normal G
startinsert!

normal G 将光标移动到文件的末尾(即新插入内容的最后一行)。然后,startinsert! 命令使光标进入插入模式,准备让用户填写文件描述。

3. 自动命令设置
autocmd BufNewFile *.tcl,*.csh,*.tcsh,*.py call SetFileHeader()

autocmd 是 Vim 中的自动命令,当满足特定条件时会自动执行指定的命令。这里设置了一个 BufNewFile 自动命令,当创建新的文件时,文件类型为 tclcshtcshpy 时,自动调用 SetFileHeader 函数为文件添加头部注释。


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词