天天看點

配置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

<code>"此代碼是的中文無需複制"</code>

<code>"第一部分</code>

<code>"将鍵盤上的F4功能鍵映射為添加作者資訊的快捷鍵</code>

<code>map &lt;F4&gt; ms:call TitleDet()&lt;cr&gt;'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 &lt; 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,如需轉載請自行聯系原作者

繼續閱讀