免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1896 | 回复: 0
打印 上一主题 下一主题

linux内核阅读设置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-28 20:32 |只看该作者 |倒序浏览
------------------------
VIM集成编辑环境配置说明:
------------------------
1、将vim的插件集vimconf.zip解压到linux的登录用户名的主目录下,如果当前登录用户名为admin(以下以admin为例),则解压到/home/admin/,最终形成如下目录结构:
/home/admin/.vim

说明:http://www.vim.org/scripts/下为官方的vim各类插件下载网址
2、将.vimrc文件拷贝到/home/admin目录下

3、安装并配置cscope(FC10默认应已安装)
  3.1 确认FC是否安装好cscope
     [admin@localhost ~]$ cscope --version
     cscope: version 15.6
  3.2 对要浏览的代码生成cscope工作时需要的数据库。首先建立如下工作目录,放置linux内核的cscope数据库
      mkdir /home/admin/cs4kernel26  
  3.3 建立生成上述数据库的bash脚本,其中$HOME/linux-2.6.23.1为linux内核源码解压后的目录

#!/bin/bash

LNX=/home/admin/linux-2.6.23.1
cd /
find $LNX                                                                 \
    -path "$LNX/arch/*" ! -path "$LNX/arch/i386*" -prune -o               \
    -path "$LNX/include/asm-*" ! -path "$LNX/include/asm-i386*" -prune -o \
    -path "$LNX/tmp*" -prune -o                                           \
    -path "$LNX/Documentation*" -prune -o                                 \
    -path "$LNX/scripts*" -prune -o                                       \
    -name "*.[chxsS]" -print >/home/admin/cs4kernel26/cscope.files
cscope  -b -q -k -i cscope.files

4、安装并配置ctags(FC10默认应已安装)
        为了对c/c++代码在vim中进行自动代码补全, 需要安装OmniCppComplete插件, 并配合ctags生成相关标签, 其中OmniCppComplete的安装已经在步骤1中完成, 但是有一个地方必须注意, 即必须使用ctags5.7或更高版本,而不能用低版本, 如ctags5.6, 否则关于union的自动补全就无法完成,请使用ctags --version命令检查目标机器的ctags版本。
        4.1 ctags的使用
            a)进入源码所在目录,例如[admin@localhost ~]$ cd src2.6 (src2.6是内核源码的softlink目录)
            
        b)执行ctags命令将该目录及其子目录下所有代码符号进行递归处理
        [admin@localhost ~]$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ./  
        
        c)在b)执行完毕后, 将会在src2.6目录下生成一个tags文件, 以后在此目录下启动vim后, 就可以通过在函数名上执行ctrl+]来跳转到函数定义处           ,并且可以通过ctrl+o跳转回来
        注意:运行vim的时候,必须在“tags”文件所在的目录下运行。否则,运行vim的时候还要用“:set tag=”命令设定“tags”文件的路径,这样vim才能找到“        tags”文件,例如:set tag=/home/admin/src2.6/tags(我们已经统一在.vimrc文件中设置了所有插件的类似相关命令)
--------------------------------------------------        
附: 如何生成必要的系统的各种include头文件tags标签
--------------------------------------------------
为了便于在编程中通过OmnicppComplete进行c/c++代码补全, 需要对linux系统本身的/usr/include目录下的相关文件生成tags标签, 因此可以通过如下方式进行生成
i)设置当前目录为/usr/include
ii)在/usr/include目录下执行命令
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ./sys/time.h  stdio.h stdlib.h unistd.h string.h ./sys/socket.h ./sys/types.h netdb.h errno.h ./arpa/inet.h signal.h ./netinet/in.h

如果在以后发现某个头文件需要被加入到当前已生成的tags文件中, 则如下执行命令:
[admin@localhost ~]$ ctags -a ./tags --c++-kinds=+p --fields=+iaS --extra=+q ./new_include_file.h
或者
[admin@localhost ~]$ ctags --append=yes --c++-kinds=+p --fields=+iaS --extra=+q ./new_include_file.h

iii)在~/.vimrc文件中按如下方式增加所有相关tags文件有多少个, 就如法设置多少个)
set tags+=/home/admin/src2.6/tags
set tags+=/usr/include/tags
---------------------------------------------------------------------------------------      
5、vim的插件集vimconf.zip中常用插件快捷方式

        5.1 taglist
            按F2可以获得当前源文件的各个对象结构列表
        5.2 NERD_tree
            按F3可以树形方式列表磁盘目录结构
        5.3 NERD_Comment
            ",ck" <==本命令允许在insert模式下直接编写 /* 这是注释 */
        ",cs" <==本命令可以在代码中增加如下形式的注释
           /*
            *
            */
        ",ci" <==本命令可以在代码状态和注释状态之间进行切换
        ",ca" <==本命令可以在命令状态下进行c和c++注释风格的切换
          5.4 crefvim
             当光标移到c语言的关键字, 函数时, 按\cr可获得相关信息
          5.5 vcscommand for svn,下面命令直接在vim的insert状态下输入即可
             nmap \add <lug>VCSAdd
       nmap \tj <lug>VCSCommit
       nmap \diff <lug>VCSDiff
       nmap \gtorig <lug>VCSGotoOriginal
              nmap \info <lug>VCSInfo
       nmap \log <lug>VCSLog
       nmap \lock <lug>VCSLock
       nmap \review <lug>VCSReview
       nmap \status <lug>VCSStatus
       nmap \up <lug>VCSUpdate
       nmap \ulock <Plug>VCSUnlock
       nmap \diffv <Plug>VCSVimDiff
      
    5.6 errormarker,用于vim中直接进行make文件时直接显示源文件的各个编译错误
        :cw  打开quickfix窗口显示所有错误
        :cl   列出错误
        :cn  让光标指向下一个错误
        :cp  让光标指向上一个错误
        :cnew 从头开始
        :cclose 关闭quickfix窗口
        
    5.7 showmark,对源码增加书签命令:
        ,m[a,b,c,...], 其中小写字母代表只在本缓冲中起作用的标签
        \m[A,B,C,...], 或者,m[A,B,C,...], 其中大写字母代表能在多个缓冲文件中可视的书签,要跳转到某个标签,例如前面的A标签,则"'A"即可
        \mt ,Toggles ShowMarks on and off.
        \mh , Hides an individual mark.
        \ma , Hides all marks in the current buffer.
        \mm , Places the next available mark.
        
    5.8 cscope
       按F5键,显示所有调用该光标下函数的其他源码位置
       按F6键,显示所有该光标下函数调用的其他函数名及位置
      
    5.9 ctags
       按F12,重新生成当前目录(或自己指定的其他目录,具体配置在.vimrc文件中)下源码的tags标记,以同步代码补全功能(因ctags不能自动根据源码的变化启动工作,需要手工启动当源码发生改变后)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP