• [Linux] cscope使用个人笔记


    $ sudo apt-get install cscope
    $ cscope --help
    $ Usage: cscope [-bcCdehklLqRTuUvV] [-f file] [-F file] [-i file] [-I dir] [-s dir]
                  [-p number] [-P path] [-[0-8] pattern] [source files]
    
    -b            Build the cross-reference only.
    -C            Ignore letter case when searching.
    -c            Use only ASCII characters in the cross-ref file (don't compress).
    -d            Do not update the cross-reference.
    -e            Suppress the <Ctrl>-e command prompt between files.
    -F symfile    Read symbol reference lines from symfile.
    -f reffile    Use reffile as cross-ref file name instead of cscope.out.
    -h            This help screen.
    -I incdir     Look in incdir for any #include files.
    -i namefile   Browse through files listed in namefile, instead of cscope.files
    -k            Kernel Mode - don't use /usr/include for #include files.
    -L            Do a single search with line-oriented output.
    -l            Line-oriented interface.
    -num pattern  Go to input field num (counting from 0) and find pattern.
    -P path       Prepend path to relative file names in pre-built cross-ref file.
    -p n          Display the last n file path components.
    -q            Build an inverted index for quick symbol searching.
    -R            Recurse directories for files.
    -s dir        Look in dir for additional source  files.
    -T            Use only the first eight characters to match against C symbols.
    -U            Check file time stamps.
    -u            Unconditionally build the cross-reference file.
    -v            Be more verbose in line mode.
    -V            Print the version number.
    
    Please see the manpage for more information.
    
    cscope 常用选项;
    -R:         在生成索引文件时,搜索子目录树中的代码;
    -b:         只生成索引文件,不进入cscope的界面;
    -q:         生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度;
    -k:         在生成索引文件时,不搜索/usr/include目录;
    -i:         指定源文件来源位置;
    -Idir:     在-I选项指出的目录中查找头文件;
    -u:         扫描所有文件,重新生成交叉索引文件;
    -C:         在搜索时忽略大小写;
    -P path: 在以相对路径表示的文件前加上的path; 
    
    :cs find 选项:
    s:         查找C语言符号,即查找函数名、宏、枚举值等出现的地方;
    g:         查找函数、宏、枚举等定义的位置,类似ctags所提供的功能;
    d:         查找本函数调用的函数;
    c:         查找调用本函数的函数;
    t:         查找指定的字符串;
    e:         查找egrep模式,相当于egrep功能,但查找速度快多了;
    f:         查找并打开文件,类似vim的find功能;
    i:         查找包含本文件的文件;
    
    ~/.gvimrc中的配置
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " cscope setting
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    if has("cscope")
      set csprg=/usr/bin/cscope
      set csto=1
      set cst
      set nocsverb
      " add any database in current directory
      if filereadable("cscope.out")
          cs add cscope.out
      endif
      set csverb
    endif
    
    nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>
    nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>
    nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>
    nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>
    nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>
    nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
    nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
    nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>
    
    操作指令:
    # 在源代码根目录下输入
    $ find . -name "*.[ch]" -o -name "*.cpp" -o -name "*.hpp" > cscope.file
    $ cscope -Rbkq
    $ gvim <file> #打开一个文件;
    $ :cs add cscope.out
    $ :cs find g <pattern> #搜索一个宏变量的定义位置;
    ------------
    微博:http://weibo.com/scue
    Github:http://github.com/scue
  • 相关阅读:
    mysql binlog日志
    安装源码包(这里主要写了redis,其他都一样的操作)
    hashMap异常:java.util.ConcurrentModificationException
    谷歌post url “net::ERR_INCOMPLETE_CHUNKED_ENCODING”
    itextpdf结合jfinal模版生成pdf文件
    springboot项目jar冲突问题解决
    map遍历
    el和jstl表达式问题==0的问题
    fastJSON 解析转换包含下划线属性的问题
    CentOS 7 64位
  • 原文地址:https://www.cnblogs.com/scue/p/2942692.html
Copyright © 2020-2023  润新知