配置vim在源代碼中自動添加作者信息

每個程序員都有自己心愛的代碼編輯和查看工具,相信不少Linux下的程序員都喜歡用Vim,盡管Vim沒有SourceInsight這種依托于桌面環境的編輯器看起來那樣強大,但是Vim的高效、簡潔以及強大的可配置性都讓它吸引了無數忠實的fans。

很多編輯器都支持在源代碼中自動添加作者信息的功能,SourceInsight就有這項功能。Vim默認是沒有這個功能,但是只要我們稍作配置,就可以實現這個功能了。

在Linux下我們需要修改Vim的配置文件vimrc,位于:
/etc/vim/vimrc, 然后在配置文件最后添加如下信息,就可以實現在源代碼中自動添加作者信息了:

? ? 此配置文件只分三個部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"此代碼是的中文無需復制"
"第一部分
"將鍵盤上的F4功能鍵映射為添加作者信息的快捷鍵
map <F4> ms:call TitleDet()<cr>'s
function?AddTitle()
????call append(0,"##############################################")
????call append(1,"#")
????call append(2,"# Author: jinguangping - jingguangping@qq.com")
????call append(3,"#")
????call append(4,"# QQ : 407576293")
????call append(5,"#")
????call append(6,"# Last modified: ".strftime("%Y-%m-%d %H:%M"))
????call append(7,"#")
????call append(8,"# Filename: ".expand("%:t"))
????call append(9,"#")
????call append(10,"# Description: ")
????call append(11,"#!/bin/bash")
????echohl WarningMsg |?echo?"Successful in adding the copyright."?| echohl None
endfunction
"此處為預顯示的格式
"第二部分
"更新最近修改時間和文件名
function?UpdateTitle()
????normal m'
????execute?'/# *Last modified:/s@:.*$@\=strftime(":\t%Y-%m-%d %H:%M")@'
????normal?''
????normal mk
????execute?'/# *Filename:/s@:.*$@\=":\t\t".expand("%:t")@'
????execute?"noh"
????normal 'k
????echohl WarningMsg |?echo?"Successful in updating the copy right."?| echohl None
endfunction
"第三部分
"判斷前10行代碼里面,是否有Last modified這個單詞(為更新時間的依據),
"如果沒有的話,代表沒有添加過作者信息,需要新添加;
"如果有的話,那么只需要更新即可
function?TitleDet()
????let?n=1
????while?n < 10
????????let?line = getline(n)
????????if?line =~?'^\#\s*\S*Last\smodified:\S*.*$'
????????????call UpdateTitle()
????????????return
????????endif
????????let?n = n + 1
????endwhile
????call AddTitle()
endfunction

? ?將此三部份寫到/etc/vimrc的末尾即可(注:中文不要復制)

? ?使用vim 文件名,在默認模式下按F4,就會出現下面的結果,寫完或修改后,回到默認模式下,再按一次就會將時間修改了

這是在我電腦上運行的結果:

wKiom1L_qtexF9YAAACN7n8f3F0235.jpg

? ? ? PS:

? ? ? ? ? ? ? ? 剛開始學寫shell腳本,在網上找了好多,最接近正解的是:可以正常運行,但會在vim的默認格式中每一次都會提示:

? ? ? ? ? ? ? ?E20: mark not set

? ? ? ? ? ? ? ?在谷哥的幫助下找到了解決辦法:

? ? ? ? ? ? ? ?地址為:

? ? ? ? ? ? ? ? ? ? ? ? ? ??http://www.cnblogs.com/jianyungsun/archive/2011/02/14/1954057.html

? ? ? ? ? ? ? ? 小生菜鳥一只,歡迎各種磚頭瓦塊a_c










本文轉自 jinlinger 51CTO博客,原文鏈接:http://blog.51cto.com/essun/1359494,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257004.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257004.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257004.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

paddle模塊的詳細介紹

https://blog.csdn.net/hua111hua/article/details/89415396

[CareerCup] 2.4 Partition List 劃分鏈表

2.4 Write code to partition a linked list around a value x, such that all nodes less than x come before all nodes greater than or equal to x. LeetCode上的原題&#xff0c;請參見我之前的博客Partition List 劃分鏈表。轉載于:https://www.cnblogs.com/grandyang/p/…

sdl的縮放問題

SDL是一種既是開源的&#xff0c;也是跨平臺的多媒體開發包&#xff0c;在各種平臺上應用很廣&#xff0c;經常和FFMPEG等解碼器同時使用。對于在windows mobile等缺乏通用播放器的平臺來說&#xff0c;是一種很好的選擇。網上很多代碼&#xff0c;介紹SDL的用法&#xff0c;主…

Ubuntu系統盤制作

1、首先打開UltraISO軟件&#xff0c;盡量下載最新版的&#xff0c;小編曾用某個舊版的UltraISO&#xff0c;制作的安裝盤&#xff0c;不能不能識別磁盤&#xff0c;安裝失敗! 2、點擊工具欄中的第二個打開鏡像文件工具&#xff0c;如圖紅色方框標志按鈕&#xff0c;然后在打開…

RH131 網絡配置

ip addr show 查看當前網絡地址 ip link show 查看網絡鏈接狀態 ip -s link show 查看網卡統計信息 ip addr add 192.168.0.154 添加ip地址 ip link dev eth0 down 禁用ip地址 網卡的配置文件/etc/sysconfig/network-scripts/ifcfg-ethx 自動專用地址&#xff1a;169.254.*.* …

學習筆記02:直播串講02

1.基于模型的學習 根據以往的學習經驗&#xff0c;建立起輸入輸出的模型&#xff0c;然后預測輸入&#xff0c;并且將輸入帶入到模型中&#xff0c;進而預測出輸出的結果&#xff0c;這種學習稱為基于模型的學習 2.機器學習的過程 1&#xff09;數據收集&#xff1a;通過爬蟲、…

如何將Pcm格式的音頻文件轉換成Wave格式的文件

最近在做一款變聲App&#xff0c;其中就用到了將pcm格式轉wave格式&#xff0c;下面貼出源代碼&#xff0c;希望帶有需求的童鞋有幫助&#xff01;&#xff01;&#xff01;這里是c語言寫的&#xff0c;也可以用java實現。當然java調用native函數要用到jni技術。具體jni技術自己…

Dojo儀表板

Dojo它提供了一個良好的儀表板顯示器&#xff0c;的影響&#xff0c;如以下&#xff1a; <!DOCTYPE html> <html> <head><title>Dojo儀表盤</title><meta charset"utf-8"><script src"http://192.168.240.186/arcgis_js…

在新的固態硬盤只裝ubuntu16.04系統,重啟后無啟動項解決方案

方法一&#xff1a;不要使用UltraISO制作ubutnu系統啟動盤&#xff0c;需要用UniversalUSBInstaller &#xff08;這個是Ubuntu官方推薦的制作u盤的軟件&#xff09; 不用UltraISO這個是因為&#xff0c;裝完ubuntu系統后&#xff0c;啟動的時候只有黑屏幕的光標&#xff0c;是…

學習筆記(22):Python網絡編程并發編程-什么是線程

立即學習:https://edu.csdn.net/course/play/24458/296436?utm_sourceblogtoedu 什么是線程&#xff1f;&#xff08;以地鐵為例&#xff09; 1.北京地鐵、上海地鐵、廣州地鐵稱之為三個不同的進程&#xff1b;而上海1號線上海3號線稱之為線程&#xff1b; 2.進程是資源單位&a…

流程圖制作在云上 https://www.processon.com/

流程圖制作在云上 &#xff1a; https://www.processon.com/ 轉載于:https://www.cnblogs.com/hopesun/p/4661429.html

機械硬盤變成了動態磁盤怎么壓縮不了該磁盤

由于我的電腦原裝是win8系統&#xff0c;自從win8系統以及以后的win10系統&#xff0c;磁盤管理方式變成了兩種&#xff0c;1是基本磁盤管理&#xff1b;2是動態磁盤管理 由于本人想要在機械硬盤上壓縮一個可用的綠色空間出來安裝ubuntu系統&#xff1b;由于本人的三星機械100…

Exchange2013恢復已刪除用戶郵箱

上一篇文章我們講到了如何恢復已禁用的郵箱。但是在微軟的Exchange中&#xff0c;禁用郵箱和刪除郵箱畢竟是兩個截然不同的概念&#xff0c;這篇文章我們就來看看如何恢復已刪除的郵箱。 1.依然是新建用戶“張三”&#xff0c;然后給其發一封郵件&#xff0c;作為后續郵箱數據恢…

學習筆記(23):Python網絡編程并發編程-開啟線程的兩種方式

立即學習:https://edu.csdn.net/course/play/24458/296437?utm_sourceblogtoedu 開啟線程的兩種方法&#xff1a;threading.Thread 1.方法一&#xff1a; from threading import Thread import time#方式一&#xff1a;直接使用thrending下的Thread類 def mythread(name):pri…

調用異步服務時的超時處理

主線程調用異步服務后&#xff0c;通過設定主線程的等待時間來進行超時處理。Demo如下&#xff1a;AsyncTask.cs 1 using System;2 using System.Threading.Tasks;3 using MyCSharp.ExternalService;4 5 namespace MyCSharp.Grammas6 {7 public class AsyncTask8 {9 …

linux下一個apache+tomcat負載均衡和集群

先說一下我的環境 一個ubuntu虛擬機&#xff0c; 一個apache2.2示例 兩tomcat1.7示例 1.安裝apacheserver sudo apt-get install apache2假設要重新啟動的話&#xff0c;執行命令&#xff1a; sudo /etc/init.d/apache2 restart ubuntu下的apache會默認創建路徑/var/www&#x…

JS實現css屬性動畫效果

html代碼 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>css屬性運動框架</title><style>body,div{margin: 0;padding: 0;}ul,li{list-style: none;}ul li{width: 200px;height: 100px;background: yellowgre…

學習筆記(24):Python網絡編程并發編程-進程與線程的區別

立即學習:https://edu.csdn.net/course/play/24458/296438?utm_sourceblogtoedu 線程與進程的區別&#xff1a; 1.消耗區別&#xff1a;進程>線程 1&#xff09;進程運行結果 #進程運行 from multiprocessing import Process def task(name):print("我是%s"%na…

Codeforces Beta Round #1

A /*************************************************************************> File Name: A.cpp> Author: opas_chenxin> Mail: 1017370773qq.com > Created Time: 2016年05月06日 星期五 02時22分23秒 ************************************************…

windows系統中創建線程常用哪幾個函數,有什么區別?

windows系統中創建線程常用哪幾個函數&#xff1f; 在windows系統中創建線程的函數有&#xff1a; CreadThread&#xff0c;AfxBeginThread&#xff0c;_beginthread&#xff0c;_beginthreadex。 他們的區別在于使用的場景不同。 CreateThread是Windows的API函數(SDK函數的標…