首先安装cscope [root@cutbag sys]#tar jxvf cscope-15.7a.tar.bz2[root@cutbag sys]#cd cscope-15.7a[root@cutbag.../configure --enable-cscope --prefix=/usr[root@cutbag sys]#make&&make install 然后安装ctags [root@cutbag...-name "*.c" -o -name "*.h" -o -name "*.cpp" > cscope.filescscope -Rbkq -i cscope.filesctags -R Written
- Generate cscope index gtags - Generate GNU GLOBAL index kernelrelease - Output...tarball perf-tarxz-src-pkg - Build perf-2.6.39-rc3.tar.xz source tarball Documentation targets: Linux.../README file [root@btg ext4]# [root@btg ext4]# make tags cscope GEN tags GEN cscope...[root@btg ext4]# 我自己生成的cscope和tags打开的内容 Cscope tag: start_kernel # 行 文件名 / 上下文 / 行 1... asmlinkage void __init start_kernel(void ) Type number and (empty cancels): 如果使用
/cscope.filescscope -Rbkq即可。...If it wasn't, time to recompile vim... if has("cscope") """"""""""""" Standard cscope/vim boilerplate..." use both cscope and ctag for 'ctrl-]', ':ta', and 'vim -t' set cscopetag " check cscope for...("cscope.out") cs add cscope.out " else add the database pointed to by environment variable...elseif $CSCOPE_DB !
阅读c++代码中,我门在linux上直接vim打开,简单的搜索"/"搜索关键词。这个搜索出来的类似有Find查找。但其实在c++代码中有个更高级的功能-符号解析器。...首先我们需要先按照cscope工具,苹果OSX系统使用brew install cscope安装,ubuntu系统使用apt get install scope,centos系统使用yum install...-b: 构建交叉引用(cross-reference)文件之后,而不会进入命令的交互使用界面 -c:符号仅限于ascii字符 这时候我们在使用vim的时候,就可以加载这个符号数据库。...然后可以通过以下使用用法: cs[cope] find a|c|d|e|f|g|i|s|t name cscope 命令: add : 添加一个新的数据库 (Usage: add...但是这不妨碍cscope,因为它轻便,无需桌面环境,且比文本搜索工具更能准确地查找符号,很适合在服务上使用vim阅读代码。
[root@btg linux-2.6]# vim [1]+ Stopped vim [root@btg linux-2.6]# vim fs/ext2/super.c [2]+ Stopped...0.0 3932 1808 pts/1 T 14:02 0:00 /usr/bin/cscope -dl -f cscope.out root 19174 3.0 0.0 6416 1016 pts/...1 R+ 14:12 0:00 ps -ux 可以看到状态都是T 如果想恢复其中一个任务,可以使用bg或者fg来进行恢复,fg是恢复到前台来运行,bg是恢复到后台运行 [root@btg linux-2.6...2 其实发送状态命令的还可以使用kill [root@btg linux-2.6]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL...0.0 0.0 3932 1808 pts/1 T 14:02 0:00 /usr/bin/cscope -dl -f cscope.out 使用如下命令 [root@btg P5906]# kill
知道了一个网站 http://kernelnewbies.org,一些FAQ , 摘录如下 (1) Code Browsing a) cscope,tags 原来内核中有生成 cscope和tags...$ make cscope V=1 /bin/bash linux-2.6.32.63/scripts/tags.sh cscope ..... + cscope -b -f cscope.out...grep -E 表示使用正则表达式。...cd linux-2.6.32 cp /boot/config-`uname -r` ./.config make menuconfig make make modules sudo...使用screen来管理回话,很方便。
/latest/source - Linux 源码 各种阅读代码的方法都有它们的优点,笔者大部分也都尝试过,但大部分时间还是喜欢用 VIM 来看。...设计思路 作为一个笔者自用的代码审计小工具,一开始就有比较简单的设计目标: 主要在 macOS 和 Linux 桌面环境和命令行环境使用,支持在服务器中使用; 支持大部分 VIM 衍生应用,比如 NEOVIM...- 查找代码定义,符号; ripgrep - Rust 实现的 grep 搜索; fzf - 模糊搜索; 构建索引 通常使用 ctags 和 cscope 构建索引的过程如下: cd src ctags...-name "*.c" -o -name "*.cpp" -o -name "*.h" > cscope.files cscope -b -q -k 不过这会在源码目录生成 .tags 和 cscope.out...同时 open 会以 READ-ONLY 模式打开 VIM 并设置好对应的 ctags 和 cscope 路径。目前为了防止审计超大型代码时候引入过多的无效文件,使用的是文件后缀白名单模式。
表示安装成功 2.4.2 cscope使用 第1步:使用 cscope 生成数据库文件 cscope -Rbkq 其中参数的含义: -R 递归,对子目录也建立数据库 -b 只生成数据库,不进入 scope.../cscope.out 第3步: 通用格式为 :cs find -option label option 可以有很多种模式,在 Vim 中使用 :help cscope-find 来查看 option:...4.结束语 本期相关的资料在https://github.com/TopSemic/NUC972_Linux Lesson19中。...本篇为大家介绍了Linux下使用vim配合4个插件实现Linux代码的高效阅读,因为我也是刚学习,所以肯定有很多更好的使用方法还没有掌握,欢迎大家多交流,共同进步,可以在网页下方留言讨论,或者发邮件:...想要获取本文pdf版本的,关注公众号后,回复linux19,即可获取。
一般来说,如果我们想要研究一个c/c++项目的源码,我们首先要做的是为该项目生成tags文件,linux内核是c写的,所以它也不例外。.../Comparison-with-Similar-Tools 根据我的测试,gtags是最好用的,其官方地址是: https://www.gnu.org/software/global/ 由于linux...那怎么办呢,其实linux的Makefile里已经帮我们写好了如何生成各种tags,看下面的命令: $ make help # 省略其他 tags/TAGS - Generate tags...file for editors cscope - Generate cscope index gtags - Generate GNU GLOBAL index...在生成tags文件后,我们就可以在各种编辑器里使用了,下面是emacs编辑器使用gtags的效果图: ? 还不错吧。
对于vim+Taglist+cscope+ctags组合编辑器的创建,vim , cscope , ctags安装起来比较方便使用上述命令即可安装!...(对于不同的Linux发行版本安装软件的命令不太一样,需要根据自己的安装版稍微修改,比如说Fedora即使用yum命令安装) 对于Taglist使用这个方法安装不了,我们需要先下载,然后安装完成:...但是对于Linux下的C/C++的 程序员,使用VIM+Ctags的组合来写程序也许是最佳的选择。^_^ 尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。...在VIM中使用cscope非常简单,首先调用“cscope add”命令添加一个cscope数据库,然后就可以调用“cscope find”命令进行查找了。...要使用cscope查找就必须加载cscope.out文件.在vim命令行下执行:(按照上述方法配置好的vimrc中有这一步) :cs add cscope.out 在vim命令行下执行: :cs
@ubuntu:~/arm$ cd linux-2.6.24.7 lingd@ubuntu:~/arm/linux-2.6.24.7$ ls arch crypto include.../tags表示在当前工作目录下搜索tags文件 set tags+=~/arm/linux-2.6.24.7/tags表示在搜寻tags文件的时候,也要搜寻~/arm/linux-2.6.24.7/文件夹下的...如果在当前文件中存在匹配,那它将会被首先使用。..." 同时搜索cscope数据库和标签文件 set cscopequickfix=s-,c-,d-,i-,t-,e- " 使用QuickFix窗口来显示cscope查找结果...数据库 lingd@ubuntu:~/arm/linux-2.6.28.7$ cscope -Rbq lingd@ubuntu:~/arm/linux-2.6.28.7$ ls cscope.* cscope.in.out
huge --enable-rubyinterp --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config-i386-linux-gnu.../ --enable-perlinterp --enable-gui=gtk2 --enable-cscope --enable-luainterp --enable-perlinterp --enable-multibyte...Vim对lua编写的插件的支持 --enable-perlinterp:启用Vim对perl编写的插件的支持 --enable-multibyte:多字节支持 可以在Vim中输入中文 --enable-cscope...:Vim对cscope支持 --enable-gui=gtk2:gtk2支持,也可以使用gnome,表示生成gvim --with-python-config-dir=/usr/lib/python2.7.../config-i386-linux-gnu/ 指定 python 路径 --prefix=/usr:编译安装路径 3.编译安装 sudo make VIMRUNTIMEDIR=/usr/share
比如输入快捷键将在底部显示具体命令 set mouse=a 支持使用鼠标 set encoding=utf-8 使用 utf-8 编码 set t_Co=256 启用256色 set autoindent...如果在编辑过程中文件发生外部改变(比如被别的编辑器编辑了),就会发出提示 持续更新… vim博大精深,先看看有哪比较使用的vim插件 Linux 为源代码生成ctags: 1.sudo.../linux-5.x.x 2.生成tags文件,根目录执行ctags -R xxx(xxx为需要生成tags的文件目录) 3.vim -t tags(tags替换为想要查找查找的变量或函数名...为源代码生成cscope: 1.sudo apt-get install cscope安装vim插件 2.cd到代码根目录并执行命令 cscope -Rbq生成索引库 3.vim中添加cscope.out...,: cs add cscope.out vim支持8种cscope的查询功能:cs find -s tags 命令 说明 s 查找C语言符号,即查找函数名、宏、枚举值等出现的地方 g 查找函数、宏、
比如说对linux kernel的代码做研究(举个例子,我真正做的不是这个),我想知道一个个数据包在kernel里走过的全部流程,然后以此绘制热点图,Petri Net等等。...对这个需求点,我需要的「轮子」有: (1) systemtap,一个linux下媲美DTrace的probing工具。...非c/c++,或者非unix平台下工作的程序员可能不知道cscope —— 其实只要你使用IDE,IDE就会生成代码库的索引,跟cscope原理基本一样。...使用过cscope的人大多是用vim/emacs或者直接"cscope -d"使用,我想99%的人不知道cscope还能这么用: $ cscope -d -L2 # print...使用cscope.out的另外一个好处是对代码的分析可以脱离代码本身,任何一个装有cscope的环境就可以进行分析。
python3.7 /usr/bin/python 查看是否安装成功 python -V 注:centos7 默认python 2.7.5 如:/usr/bin/firewall-cmd、/usr/bin/yum使用的是...:打开对cscope的支持 --enable-fontset 字体设置 --with-python-config-dir=/usr/lib64/python2.7/config #指定python2路径...=/usr/local/vim:指定将要安装到的路径 查找python3配置文件路径 注意:如果您使用的是Python,则您的config目录可能具有特定于计算机的名称(例如config-3.5m-x86..._64-linux-gnu) 查找ptyhonn.o文件路径 因为后续还要安装YouCompleteMe插件,YCM插件需要vim支持python2,所以这里python2和python3都有配置。.../configure --with-features=huge \ --enable-multibyte \ --enable-cscope \ --enable-pythoninterp=yes \
最近在搞linux,没有好用的IDE,想到了VIM. 配置 了下VImrc文件。发现挺好用的。这里总结下使用方法。 首先环境准备,下载windows下的VIM .GVIM。我的版本是V7.4....关于vim,有个吐槽是快捷键像 复制粘贴等,在linux和windows下都通用的,但vim不行。其实配置下也是可以的。... "在Visual模式中使用Ctrl+c复制内容到全局剪贴板 vnoremap "+y "在Visual模式中使用Ctrl+x剪切内容到全局剪贴板 vnoremap ...if has("cscope") set csprg=cscope csto=0 cst nocsverb if filereadable("cscope.out") " add any database...in current directory cs add cscope.out elseif $CSCOPE_DB !
下面我们需要使用这个文件查看源代码。我们需要用到另外一个插件TagList,配合Ctags可以高效的查看源代码。...下载cscope_maps.vim,放到Vim的plugin目录。 修改_vimrc,让查找结果显示在quickfix窗口而不是主窗口。...cscope_maps.vim映射了一些键盘的快捷键,我们可以快捷的使用查找功能。...启用Grep,在工程中查找 Grep是linux中命令,如果你不熟悉可以看Grep的文档。...更高级的使用可以查看文档。
本篇博客主要包含我使用的vim配置和相关插件,也作一个常用vim快捷键的记录 我的vim版本是8.1,这个版本可以在vim中直接调用terminal,并且自带的插件管理器。...如果你不是8.1的vim版本,可能无法使用我下面的插件安装方法,需要自行百度下载一个插件管理器了。...*文件,不要误删 这样当你在该目录下打开vim时可以用cscope搜索链接的所有函数,变量和字符串。但是如果在子目录下打开vim就无法使用这些链接来搜索了。...后续我会再把这个配置的使用录制成GIF动图,可以更直观的展示使用方法。...使用问题详述 新建文件无法用LeaderF搜索到的问题 当在一个文件夹打开vim使用LeaderF后,LeaderF会建立一个cache缓存。
10行数据 Linux文件系统结构 / : 根目录 /home: 主文件夹,登录用户的主文件夹 /etc :操作系统配置文件的保存位置 /usr : 用于添加的程序文件,用户的很多应用程序和文件都放在这个目录下...本地文件 :上传本地文件到远程服务器 ,只能是压缩文件,比如.tar.gz push abc.txt : 上传本地当前文件abc.txt到远程服务器 exit : 退出 windows 操作Linux...pyttty 开源软件 Linux打包命令 tar -czvf 包文件.tar.gz 文件夹1 文件夹2...System /正则 :向后查找 n 查找下一个 先使用?...vi编辑器修改 重启tomcat,我们使用zip安装方式安装的,因此需要在Tomcat的bin下执行: .
第一个我们直接使用的语言,第二个是本机编译、开发能够引用的开发lib库。...github.com/vim/vim/archive/v8.1.0561.tar.gz tar -xzvf v8.1.0561.tar.gz cd vim-8.1.0561 # 下载语言支持的开发库(和本机的各种语言使用无关.../usr/lib/python2.7/config sudo ln -s /usr/lib/python3.4/config-3.4m-arm-linux-gnueabihf /usr/lib/python3.4...enable-pythoninterp=dynamic \ --enable-perlinterp=dynamic \ --enable-rubyinterp=dynamic \ --enable-cscope...config-3.7m-darwin \ --enable-luainterp \ --with-lua-prefix=/usr/local/Cellar/lua/5.3.5_1 \ --enable-cscope
领取专属 10元无门槛券
手把手带您无忧上云