vim常用

vim + cscope

    #!/bin/sh
    find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files
    cscope -bkq -i cscope.files
    ctags -R

cscope生成三個索引文件cscope.out, cscope.in.out, cscope.po.out

add : Add a new database (Usage: add file|dir pre-path )

:cscope add cscope.out

在 vim 中可以使用命令縮寫

 

:cs a cscope.out

 

http://graceco.de/manual/cscope_vim_tutorial_zh.html

查找命令

複製代碼
:cs find s ---- 查找C語言符號,即查找函數名、宏、枚舉值等出現的地方
:cs find g ---- 查找函數、宏、枚舉等定義的位置,類似ctags所提供的功能
:cs find d ---- 查找本函數調用的函數
:cs find c ---- 查找調用本函數的函數
:cs find t: ---- 查找指定的字符串
:cs find e ---- 查找egrep模式,相當於egrep功能,但查找速度快多了
:cs find f ---- 查找並打開文件,類似vim的find功能
:cs find i ---- 查找include
複製代碼

Vim 的多窗口功能:移動使用 'CTRL-W w'(或者使用 'CTRL-W' 加方向鍵,或者 CTRL-W h/j/k/l 對應 左/上/下/右),關閉窗口使用 'CTRL-W c'(或者使用辦法 ':q'),僅僅使用當前窗口使用 'CTRL-W o',分割兩個同樣的窗口使用 'CTRL-W s'(或者使用 'CTRL-W v' 垂直分割),在一個新窗口打開文件爲 ':spl[it] 文件名']

  • C+/ s   Vim 底部彈出一個窗口
  • C+space s 搜索的結果將出現在 Vim 新分割的水平窗口中

makefile

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225
    1)如果這個工程沒有編譯過,那麼我們的所有C文件都要編譯並被鏈接。
    2)如果這個工程的某幾個C文件被修改,那麼我們只編譯被修改的C文件,並鏈接目標程序。
    3)如果這個工程的頭文件被改變了,那麼我們需要編譯引用了這幾個頭文件的C文件,並鏈接目標程序。 

 target ... : prerequisites ...
            command
            ...
            ...


    target也就是一個目標文件,可以是Object File,也可以是執行文件。還可以是一個標籤(Label),對於標籤這種特性,在後續的“僞目標”章節中會有敘述。

    prerequisites就是,要生成那個target所需要的文件或是目標。

    command也就是make需要執行的命令。(任意的Shell命令) 

make會比較targets文件和prerequisites文件的修改日期,如果prerequisites文件的日期要比targets文件的日期要新,或者target不存在的話,那麼,make就會執行後續定義的命令。  

pkg-config

pkg-config提供了下面幾個功能:

  1. 檢查庫的版本號。如果所需要的庫的版本不滿足要求,它會打印出錯誤信息,避免鏈接錯誤版本的庫文件。
  2. 獲得編譯預處理參數,如宏定義,頭文件的位置。
  3. 獲得鏈接參數,如庫及依賴的其它庫的位置,文件名及其它一些連接參數。
  4. 自動加入所依賴的其它庫的設置。

爲了讓pkg-config可以得到這些信息,要求庫的提供者,提供一個.pc文件。比如gtk+-2.0的pc文件內容如下:

複製代碼
    prefix=/usr
    exec_prefix=/usr
    libdir=/usr/lib
    includedir=/usr/include
    target=x11

    gtk_binary_version=2.4.0
    gtk_host=i386-redhat-linux-gnu

    Name: GTK+
    Description: GIMP Tool Kit (${target} target)
    Version: 2.6.7
    Requires: gdk-${target}-2.0 atk
    Libs: -L${libdir} -lgtk-${target}-2.0
    Cflags: -I${includedir}/gtk-2.0
複製代碼
$ gcc sample.c -o sample `pkg-config –cflags –libs glib-2.0`

vim命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章