每個程式員都有自己心愛的代碼編輯和檢視工具,相信不少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
<code>"此代碼是的中文無需複制"</code>
<code>"第一部分</code>
<code>"将鍵盤上的F4功能鍵映射為添加作者資訊的快捷鍵</code>
<code>map <F4> ms:call TitleDet()<cr>'s</code>
<code>function</code> <code>AddTitle()</code>
<code> </code><code>call append(0,</code><code>"##############################################"</code><code>)</code>
<code> </code><code>call append(1,</code><code>"#"</code><code>)</code>
<code> </code><code>call append(2,</code><code>"# Author: jinguangping - [email protected]"</code><code>)</code>
<code> </code><code>call append(3,</code><code>"#"</code><code>)</code>
<code> </code><code>call append(4,</code><code>"# QQ : 407576293"</code><code>)</code>
<code> </code><code>call append(5,</code><code>"#"</code><code>)</code>
<code> </code><code>call append(6,</code><code>"# Last modified: "</code><code>.strftime(</code><code>"%Y-%m-%d %H:%M"</code><code>))</code>
<code> </code><code>call append(7,</code><code>"#"</code><code>)</code>
<code> </code><code>call append(8,</code><code>"# Filename: "</code><code>.</code><code>expand</code><code>(</code><code>"%:t"</code><code>))</code>
<code> </code><code>call append(9,</code><code>"#"</code><code>)</code>
<code> </code><code>call append(10,</code><code>"# Description: "</code><code>)</code>
<code> </code><code>call append(11,</code><code>"#!/bin/bash"</code><code>)</code>
<code> </code><code>echohl WarningMsg | </code><code>echo</code> <code>"Successful in adding the copyright."</code> <code>| echohl None</code>
<code>endfunction</code>
<code>"此處為預顯示的格式</code>
<code>"第二部分</code>
<code>"更新最近修改時間和檔案名</code>
<code>function</code> <code>UpdateTitle()</code>
<code> </code><code>normal m'</code>
<code> </code><code>execute </code><code>'/# *Last modified:/s@:.*$@\=strftime(":\t%Y-%m-%d %H:%M")@'</code>
<code> </code><code>normal </code><code>''</code>
<code> </code><code>normal mk</code>
<code> </code><code>execute </code><code>'/# *Filename:/s@:.*$@\=":\t\t".expand("%:t")@'</code>
<code> </code><code>execute </code><code>"noh"</code>
<code> </code><code>normal 'k</code>
<code> </code><code>echohl WarningMsg | </code><code>echo</code> <code>"Successful in updating the copy right."</code> <code>| echohl None</code>
<code>"第三部分</code>
<code>"判斷前10行代碼裡面,是否有Last modified這個單詞(為更新時間的依據),</code>
<code>"如果沒有的話,代表沒有添加過作者資訊,需要新添加;</code>
<code>"如果有的話,那麼隻需要更新即可</code>
<code>function</code> <code>TitleDet()</code>
<code> </code><code>let</code> <code>n=1</code>
<code> </code><code>while</code> <code>n < 10</code>
<code> </code><code>let</code> <code>line = getline(n)</code>
<code> </code><code>if</code> <code>line =~ </code><code>'^\#\s*\S*Last\smodified:\S*.*$'</code>
<code> </code><code>call UpdateTitle()</code>
<code> </code><code>return</code>
<code> </code><code>endif</code>
<code> </code><code>let</code> <code>n = n + 1</code>
<code> </code><code>endwhile</code>
<code> </code><code>call AddTitle()</code>
将此三部份寫到/etc/vimrc的末尾即可(注:中文不要複制)
使用vim 檔案名,在預設模式下按F4,就會出現下面的結果,寫完或修改後,回到預設模式下,再按一次就會将時間修改了
這是在我電腦上運作的結果:
<a href="http://s3.51cto.com/wyfs02/M00/12/3E/wKiom1L_qtexF9YAAACN7n8f3F0235.jpg" target="_blank"></a>
PS:
剛開始學寫shell腳本,在網上找了好多,最接近正解的是:可以正常運作,但會在vim的預設格式中每一次都會提示:
E20: mark not set
在谷哥的幫助下找到了解決辦法:
位址為:
小生菜鳥一隻,歡迎各種磚頭瓦塊a_c
本文轉自 jinlinger 51CTO部落格,原文連結:http://blog.51cto.com/essun/1359494,如需轉載請自行聯系原作者