vim常用

来源:互联网 发布:mac book 不能升级 编辑:程序博客网 时间:2024/05/16 08:10

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命令

原创粉丝点击