[Android] osx下如何使用SublimeText阅读Android系统源码
reference to : http://www.jianshu.com/p/c295d2729ecf
平时使用Sublimetext都是打开单个文件,这次要导入几万个文件,这在一些ide中称为project。同样在Sublime中也是如此。
1. 创建工程
Project > Add Folder to Project 选择源码目录即可
这时在窗口左边栏中将出现刚刚添加的文件目录,如果还需要添加其他目录,则重复这一操作即可。
2. 保存工程
Project > Save Project As
点击保存后Sublime Text将自动生成两个文件:
project_name.sumlime-project:包含工程定义,该文件会被记录到版本控制里。
project_name.sublim-workspace:包含了用户的工程数据,例如打开的文件和修改等,该文件不会被记录到版本控制里。
在.sublime-project文件中,你可以定义工程配置。例如你可以定义多个目录路径,或者哪些目录或文件需要排除在外。例如:
以上.sublime-project文件中定义了两个目录,而“name”标签是该目录在Sublime Text的左边栏中显示的名字。通过定义“name”,你可以将一些长路径或者名字很长的目录以更简洁的名称显示在左边栏中。
3、添加索引
- 安装Package Control插件
1.打开控制台方法1:View->show console
方法2:ctrl+~2.输入代码:
python2.x代码:import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
python3.x代码:
import urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
安装CTags
- 首先 Preference -> Browser Packages... 查看是否已经安装了CTags Package,如果没有则继续下面步骤
- Preference -> Package control, 输入“install package”,它会找出你可以安装的插件,在列表中选择ctag插件进行安装
3.创建索引

4、异常处理
- 期间出现Package Control:There are no packages available for installation弹窗提示
选择Preference->Browser Packages打开文件夹后
删除Package Control目录、删除User目录下相关Package Control名称文件等,再次安装。 - ctag rebuild时弹窗异常如图:

这是因为我们还没有安装和配置ctags
下载ctags-5.8.tar.gz解压并编译,依次执行如下命令:
tar xzvf ctags-5.8.tar.gz
cd ctags-5.8
./configure
make
sudo make install
打开Preference ->Package settings->ctags->settings-user和settings-default
把default中的配置全部复制到user中,然后改一下command配置项,为ctags的可执行文件路径/usr/local/bin/ctags(可以通过which ctags命令查看ctags路径)
5、快捷键
- 修改跳转
默认函数跳转:Ctrl+shift+左键; 跳转返回:Ctrl+shift+右键。修改方法:
Perference->Package Settings->CTags->Mouse Binding Default->复制到Mouse Binding User,把里面的"ctrl+shift",修改为“command”,这样就可以用“command+左键”跳转了:Command+P:查找文件
Command+R:查找方法
Command+左键:文件或函数跳转
Command+右键:返回文件或函数跳转的原始位置至此Android源码项目创建完成并创建索引,代码跳转也反应迅速。
作者:Jenson_
链接:http://www.jianshu.com/p/c295d2729ecf
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
[Android] osx下如何使用SublimeText阅读Android系统源码的更多相关文章
- android新闻项目、饮食助手、下拉刷新、自定义View进度条、ReactNative阅读器等源码
Android精选源码 Android仿照36Kr官方新闻项目课程源码 一个优雅美观的下拉刷新布局,众多样式可选 安卓版本的VegaScroll滚动布局 android物流详情的弹框 健身饮食记录助手 ...
- Android FrameWork 学习之Android 系统源码调试
这是很久以前访问掘金的时候 无意间看到的一个关于Android的文章,作者更细心,分阶段的将学习步骤记录在自己博客中,我觉得很有用,想作为分享同时也是留下自己知识的一些欠缺收藏起来,今后做项目的时候会 ...
- 【安卓本卓】Android系统源码篇之(一)源码获取、源码目录结构及源码阅读工具简介
前言 古人常说,“熟读唐诗三百首,不会作诗也会吟”,说明了大量阅读诗歌名篇对学习作诗有非常大的帮助.做开发也一样,Android源码是全世界最优秀的Android工程师编写的代码,也是A ...
- 如何阅读Android系统源码-收藏必备
对于任何一个对Android开发感兴趣的人而言,对于android系统的学习必不可少.而学习系统最佳的方法就如linus所言:"RTFSC"(Read The Fucking So ...
- android五子棋游戏、资讯阅读、大学课程表、地图拖拽检测、小说搜索阅读app等源码
Android精选源码 Android 自动生成添加控件 android旋转动画.圆形进度条组合效果源码 一款很强的手机五子棋app源码 android地图拖拽区域检测效果源码 实现Android大学 ...
- android优化中国风应用、完整NBA客户端、动态积分效果、文件传输、小说阅读器等源码
Android精选源码 android拖拽下拉关闭效果源码 一款优雅的中国风Android App源码 EasySignSeekBar一个漂亮而强大的自定义view15 android仿蘑菇街,蜜芽宝 ...
- android选择器汇总、仿最美应用、通用课程表、卡片动画、智能厨房、阅读客户端等源码
Android精选源码 android各种 选择器 汇总源码 高仿最美应用项目源码 android通用型课程表效果源码 android实现关键字变色 Android ViewPager卡片视差.拖拽及 ...
- Android系统架构与系统源码目录
前言 技术博客终于可以恢复正常的更新速度了,原因是我编写的进阶书籍的初稿已经完成,窃以为它将会是Android应用书籍中最有深度的一本,可以说是<Android开发艺术探索>的姊妹篇.在这 ...
- FW 编译Android系统源码和内核源码
编译Android系统源码和内核源码 分类: Android2014-07-21 20:58 7287人阅读 评论(28) 收藏 举报 好长时间没有写blog了,之所以没有写,主要还是工作上的事,发现 ...
随机推荐
- javascript输入验证数字方法,适合充值时输入正整数验证
说明:用于验证正整数的输入,不允许输入其他字符. html: <input type="text" id="sell_jobNum" name=" ...
- CodeIgniter2.0中sqlserver驱动返回受影响行数问题解决
最近使用CI写项目时遇到的问题,当使用sqlserve链接操作时 修改和删除返回的受影响行数不对 解决办法如下: 找到ci框架目录中include\database\drivers\sqlsrv\sq ...
- 【LOJ】#2063. 「HAOI2016」字符合并
题解 dp[i][j][S]表示区间[i,j]内剩余的数位状压后为S的最大值 这样转移起来不就是\(n^3 2^8\)了吗 冷静一下,我们可以发现一段区间内剩下的数位的个数是一定的,也就是我们可以在枚 ...
- 黑马程序员_java基础笔记(02)...java语言基础组成
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流!—————————— java语法(1:关键字,2:标识符,3:注释,4:常量和变量,5:运算符,6:语 ...
- Eclipse反编译插件的安装
步骤: 1.已经安装了Eclipse,如我的Eclipse目录:C:\Programs\JAVA\eclipse 2.反编译插件包:eclipse 反编译插件 jad 3.3.0.zip 3.解压反编 ...
- 机器学习之路:python 集成分类器 随机森林分类RandomForestClassifier 梯度提升决策树分类GradientBoostingClassifier 预测泰坦尼克号幸存者
python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/l ...
- c++ 时间相关的类型
关于时间转换可以参考以下博客: https://www.jianshu.com/p/80de04b41c31 https://www.cnblogs.com/qicosmos/p/3642712.ht ...
- 【set】【可持久化Trie】The 16th UESTC Programming Contest Preliminary K - Will the circle be broken
题意:You are given an array A of N non-negative integers and an integer M. Find the number of pair(i,j ...
- Go Web编程 第三章--接收请求
net/http标准库 net/http标准库通常包括两个部分,客户端和服务器,我们可以通过ListenAndServe创建一个简陋的服务器 package main import ( "n ...
- 详解Android基本布局
一.线性布局 LinearLayout又称为线性布局,是一种非常常用的布局.这个布局会将它包含的控件在线性方向上依次排列.我们可以通过指定它的orientation属性来决定它是垂直方向排列还是水平方 ...