1. 程式人生 > >vim 自動添加作者、版權、修改時間等信息

vim 自動添加作者、版權、修改時間等信息

文件名 額外 ash tps 配置文件 描述 and n+1 should

相信大家閱讀代碼時都見過這樣的文件頭:

# THIS FILE IS PART OF LibreBoot PROJECT (歸屬)
# reboot.py - The core part of the reboot library (文件名和作用概述)
# 
# THIS PROGRAM IS FREE SOFTWARE, BALABALA, IS LICENSED UNDER BALABALA
# YOU SHOULD HAVE RECEIVED A COPY OF WTFPL LICENSE, IF NOT, BALABALA (聲明所使用的許可名稱,通常許可證有要求)
# 
# Copyright (c) 1989-2014 Pasta Spaghetti 
# Copyright (c) 2014 RAmen Monster

作者:匿名用戶
鏈接:https://www.zhihu.com/question/23070719/answer/31232599
來源:知乎

有什麽用呢?

這樣做當然是有很多好處啦:

  • 聲明自己的版權

  • 簡單描述代碼的功能

  • 聲明文件的版本,方便其他人維護

  • 為文件負責,其他程序員發現問題時能找到溝通的人

    試想,大家有沒有拿到過別人的“祖傳代碼”,註釋少、難以閱讀還找不到對接人員,讓不少程序員把時間浪費在了重復造輪子上。可是,如果專門去寫這個文件頭又會花掉額外的時間。那麽,有沒有一鍵生成文件頭的神技呢?當然有啦,這就不得不祭出強大的vim編輯器了,它可以做到下面一樣的操作:
    技術分享圖片

廢話不多說,下面我們開始:

  1. 安裝vim https://www.vim.org/download.php 下載對應系統的版本。

  2. 打開配置文件vimrc

    • windows 在vim命令行輸入:vsp $VIM\_vimrc
    • linux 在vim命令行輸入:vsp $VIM\.vimrc
  3. 在vimrc文件中加入下面代碼

    nmap <F6> ms:call TitleDet() <cr>'s 
    "在文件中按F6調用
    function AddTitle()
        call append (0,"/*********************************************************************")
        call append (1," * Author           : HolmeXin")
        call append (2," * Email            : [email protected]")
        call append (3," * Last modified    : ".strftime("%Y-%m-%d %H:%M"))
        call append (4," * Filename         : ".expand("%:t"))
        call append (5," * Description      : ")
        call append (6," * ******************************************************************/")
        echohl WarningMsg | echo "Adding coryright Successfully !!" | echohl None
    endfunction
    "在上面代碼中添加自己的版權信息
    function UpdateTitle()
        normal m'
        execute '/* Last modified\s*:/[email protected]:.*[email protected]\=strftime(": %Y-%m-%d %H:%M")@'
        normal ''
        normal mk
        execute '/* Filename\s*:/[email protected]:.*[email protected]\=": ".expand("%:t")@'
        execute "noh"
        normal 'k
        echohl WarningMsg | echo "Updating coryright Successfully !!" | echohl None
    endfunction
    function TitleDet()
        let n=1
        while n<7
            let line = getline(n)
            if line =~ '^\s*\*\s*Last\smodified\s*:\s*\S*.*$'
                call UpdateTitle()
                return
            endif
            let n = n+1
        endwhile
        call AddTitle()
    endfunction

OK,大功告成。

保存以後可以在自己文件中嘗試。

盡管該功能有相應的插件,但對於我們來說安裝插件相對Ctrl+c要麻煩一些,此處是該功能插件:http://www.vim.org/scripts/script.php?script_id=2902

後面還會陸續更新vim的一些技巧^_^

vim 自動添加作者、版權、修改時間等信息