各位玩家你们在阅读内核源码时,一般都使用什么工具呢?欢迎到文章末尾投上你的一票!
内核源码和uboot源码一般囊括的文件都很多很多,未删减的都能上万个文件,使用一款称手的阅读源码软件可能可以让你的工作效率提高一个level哦。
当然啦,在windows系统下阅读源码,Source Insight永远都是首选,yyds!选择使用vscode的一般都是在ubuntu等虚拟机环境下使用,这样在修改源码编译等操作尤为的方便。
初次使用vscode阅读源码过的玩家应该多多少少都有些不舒适,特别是从Source Insight用户过来的玩家,比如当源码树很庞大的时候,使用vscode打开源码文件夹,会默认的将所有的文件都添加到工程呢,当我们需要检索某个关键字的时候,vscode会检索出一堆匹配的字串,而且时间随着文件数量增大而增大,这
使用Source Insight阅读源码时,可以通过手动去选择添加的文件,进而可以提高关键字的搜索速度和准确度; 而vscode其实也是可以做到,下面上教程!
使用vscode创建源码工程
首先使用vscode打开你要阅读的源码路径 完了之后它会自动把当前选中路径下的所有文件给添加到左边栏,如下: 这个时候我们需要将它保存到一个指定的工作区,并起个名字: 工作区的具体名字可以自行更改,保存路径推荐放在你要阅读的源码路径下;
自动创建规则
在这之前,所有工作都是基础工作只是完成了一个vscode的工作创建,那么我们需要屏蔽掉一些我们不需要阅读的文件,这个时候我们就要创建一个规则,让vscode帮我们筛选过滤; 点击vscode左下角齿轮形状的按钮,选择设置;也可以按快捷键ctrl+, 进入设置界面
剔除指定文件及文件夹
进入设置界面后,选择工作区(Workspace)下的文本编辑器(Text Editor)下的文件(File)下的exclude,点击添加模式(add pattern) 在这里添加任意文件夹路径,在资源管理器即左边栏就会主动剔除你写入的文件路径,如下: 写入arch/mips 后,点击确定,左边栏的arch/mips 将立刻消失,如下:
屏蔽检索
进入设置界面后,选择工作区(Workspace)下的功能(Features)下的搜索(Search)下的exclude,点击添加模式(add pattern)
完成添加后,在使用全局检索时,指定的文件及文件夹下的内容将不被检索考虑,会主动剔除选中的文件及文件夹内容;
手动创建
如果你想比较直观,不想点击这么多按钮的话,你可以试试手动创建,如下:
创建.vscode文件夹
点击工作区名字,在边上会出现一个创建文件夹的标志,点击后输入.vscode 即可;
新建settings.json文件
完成.vscode 文件夹创建之后,需要在该文件夹下面新建一个名为setting.json 的json文件 接着写入如下内容:
{
"search.exclude": {
},
"files.exclude": {
}
}
该文件使用json的语法编写,有两个对象,一个是"search.exclude" ,一个是"files.exclude" ,这两个对象就可以实现我们vscode工作区文件检索屏蔽的规则编写; "search.exclude" 表示需要在检索结果中排除掉的文件或者文件夹; "files.exclude" 表示需要将指定的文件夹排除在工程左侧的文件栏中; 这里的两个对象,对应着自动创建规则下面的那两个exclude 我们需要屏蔽什么,就把什么文件夹路径、文件路径写进去即可;
{
"search.exclude": {
"**/*.o": true,
"**/*.su": true,
"**/*.cmd": true,
"arch/alpha": true,
"arch/mips": true,
"arch/nds32": true,
"arch/nios2": true,
"arch/arc": true,
"arch/m68k": true,
"arch/microblaze": true,
"arch/powerpc": true,
"arch/sandbox": true,
"arch/sh": true,
"arch/xtensa": true,
"arch/x86": true,
"arch/arm/mach*": true,
"arch/arm/mach-zynq": false,
"arch/arm/cpu/arm11*": true,
"arch/arm/cpu/arm720t": true,
"arch/arm/cpu/arm9*": true,
"arch/arm/cpu/armv7m": true,
"arch/arm/cpu/armv8": true,
"arch/arm/cpu/pxa": true,
"arch/arm/cpu/sa1100": true,
"board/[a-w]*": true,
"board/[y-z]*": true,
"board/[0-9]*": true,
"board/[A-Z]*": true,
"board/xe*": true,
"board/xilinx/m*": true,
"configs/[a-y]*": true,
"configs/[A-Z]*": true,
"configs/[0-9]*": true
},
"files.exclude": {
"**/*.o": true,
"**/*.su": true,
"**/*.cmd": true,
"**/.git": true,
"arch/alpha": true,
"arch/mips": true,
"arch/nds32": true,
"arch/nios2": true,
"arch/arc": true,
"arch/m68k": true,
"arch/microblaze": true,
"arch/powerpc": true,
"arch/sandbox": true,
"arch/sh": true,
"arch/xtensa": true,
"arch/x86": true,
"arch/arm/mach*": true,
"arch/arm/mach-zynq": false,
"arch/arm/cpu/arm11*": true,
"arch/arm/cpu/arm720t": true,
"arch/arm/cpu/arm9*": true,
"arch/arm/cpu/armv7m": true,
"arch/arm/cpu/armv8": true,
"arch/arm/cpu/pxa": true,
"arch/arm/cpu/sa1100": true,
"board/[a-w]*": true,
"board/[y-z]*": true,
"board/[0-9]*": true,
"board/[A-Z]*": true,
"board/xe*": true,
"board/xilinx/m*": true,
"configs/[a-y]*": true,
"configs/[A-Z]*": true,
"configs/[0-9]*": true,
"arch/arm/boot/dts/[a-y]*":true,
"arch/arm/boot/dts/.*":true,
}
}
以上是提供也给示例写法,玩家可以自行去完成配置;
手动创建的时候,文件名一定不要错了,不然会完全没效果的!
如果本文对你有点帮助,别忘了点个赞哦!
|