使vim创建.sh文件时自动添加头部描述信息

目录

需求

在编写shell脚本时,为了便于后续阅读或修改或SOP需求,我们常常会在shell脚本前添加一些描述信息,用于标注其作用和shell版本,例如:

shell 复制代码
#!/bin/bash
# File Name:
# Version:
# Author:
# Organization:
# Desc:

对于这样对某一类文件进行标准化初始化时,实际可以使用vim的配置文件/etc/vimrc

解决方案

vimrc配置文件

  • vimrc是Vim的配置文件,用于设置Vim编辑器的各种功能和个性化选项。通过编辑vimrc文件,用户可以根据自己的使用习惯和需求,定制Vim的界面、快捷键、语法高亮等功能。

  • vimrc配置文件分为系统配置用户配置两种。

    • 系统vimrc配置文件存放在Vim的安装目录中,默认路径为./etc/vimrc
    • 用户vimrc配置文件则存放在用户主目录下,默认路径为~/.vimrc
      • 用户配置文件优先于系统配置文件生效。

常见选项

功能描述 vimrc 命令
显示行号 set numberset nu
语法高亮 set syntax enable
自动缩进 set autoformatset ai
搜索高亮 set hlsearch
禁用Tab键插入制表符 set tabstop=4

修改vimrc

为了实现需求的要求,只需要在/etc/vimrc文件最后添加以下内容即可。

需要注意,修改vimrc配置文件前最好备份一份,以防修改错误导致vim不可使用。

shell 复制代码
cat >> /etc/vimrc << 'EOF'

set ignorecase 
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"

func SetTitle()
if expand("%:e") =='sh'
call setline(1, "#!/bin/bash")
call setline(2,"##############################################################")
call setline(3, "# File Name:".expand("%"))
call setline(4, "# Version:V1.0")
call setline(5, "# Author:tassel")
call setline(6, "# Organization:self-study")
call setline(7, "# Desc:")
call setline(8,"##############################################################")
endif
endfunc

功能解释

这个配置的作用是,当在 Vim 中创建一个新的 Python、C++、Shell 或 Java 文件时,它会自动调用 SetTitle 函数,为这些文件添加一些标准的注释模板。

  1. vim /etc/vimrc:这是命令行指令,用于打开 Vim 编辑器并加载 /etc/vimrc 文件进行编辑。

  2. set ignorecase:设置 Vim 在搜索时忽略大小写。

  3. autocmd BufNewFile .py, .cc,.sh,.java exec ":call SetTitle()":这是一个自动命令(autocmd),用于在创建新文件时自动执行 SetTitle() 函数。这个命令适用于扩展名为 .py, .cc, .sh, .java 的文件。

  4. func SetTitle():定义一个名为 SetTitle 的 Vim 函数。

  5. if expand("%:e") =='sh':检查当前文件的扩展名是否为 .sh。

  6. call setline(1, "#!/bin/bash"):如果是 .sh 文件,就在文件的第一行添加 #!/bin/bash,这是 shell 脚本的 shebang 行,指定脚本使用 bash 解释器。

  7. call setline(2,"##############################################################"):在第二行添加一行分隔线。

  8. call setline(3, "# File Name:".expand("%")) 到 call setline(8,"##############################################################"):在第三行到第八行之间添加注释信息,包括文件名、版本、作者、组织和描述,以及分隔线。expand("%") 函数用于获取当前文件的完整路径。

  9. endif:结束 if 条件判断。

  10. endfunc:结束函数定义。

效果

shell 复制代码
[root@manager scripts]# vim test.sh
#!/bin/bash
##############################################################
# File Name:test.sh
# Version:V1.0
# Author:tassel
# Organization:self-study
# Desc:
##############################################################

以上内容为创建时自动添加
相关推荐
waicsdn_haha7 分钟前
Java/JDK下载、安装及环境配置超详细教程【Windows10、macOS和Linux图文详解】
java·运维·服务器·开发语言·windows·后端·jdk
打鱼又晒网8 分钟前
linux网络套接字 | 深度解析守护进程 | 实现tcp服务守护进程化
linux·网络协议·计算机网络·tcp
乐闻x15 分钟前
VSCode 插件开发实战(六):配置自定义状态栏
ide·vscode·编辑器
张明奇-琦玉15 分钟前
vscode添加全局宏定义
ide·vscode·编辑器
星星不说话~20 分钟前
VScode在远程服务器上安装Anaconda并确认安装成功的步骤
ide·vscode·编辑器
良许Linux22 分钟前
0.96寸OLED显示屏详解
linux·服务器·后端·互联网
蜜獾云32 分钟前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
小屁不止是运维34 分钟前
麒麟操作系统服务架构保姆级教程(五)NGINX中间件详解
linux·运维·服务器·nginx·中间件·架构
Hacker_Oldv38 分钟前
WPS 认证机制
运维·服务器·wps
bitcsljl1 小时前
Linux 命令行快捷键
linux·运维·服务器