[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了,之所以没有写,主要还是工作上的事,发现 ...
随机推荐
- day9--回顾
线程 vs 进程 进程:一堆资源集的集合.线程:操作系统能够调度的最小单位. 进程和线程的谁快是误区,进程至少包含一个线程,是没有可比性的. 线程:共享内存,两个线程同时操作一个数据,要加锁.全 ...
- loadrunner运行时设置中清空缓存方法
用函数web_cache_clearup()或run-time settings---browser emulation 把clear cache on each iteration打勾 W v\] ...
- linux kernel.shmall shemax shemin解释
Linux X86-64操作系统,Oracle 10g数据库,由8G加到16G,把kernel.shmmax参数改到17179869184(16G)后,发现只要修改sga_max_size和s ...
- 实现Ecshop注册页面手机号唯一的验证
如果Ecshop实现了用手机号码来登陆,那么就需要在注册时保证会员所填写的手机号是唯一的,也就是说手机号还未被注册,那么该怎么来检测填写的手机号是否注册过了呢? 一.参考ecshop检测邮箱 因为注册 ...
- SHOW SLAVE STATUS解读
*************************** 1. row *************************** Slave_IO_State: ...
- 美团DB数据同步到数据仓库的架构与实践
背景 在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据.在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据( ...
- 安装部署VMware vSphere 5.5文档 (6-5) 安装配置vCenter
部署VMware vSphere 5.5 实施文档 ########################################################################## ...
- python pip 不能用报错: ImportError: No module named _internal
使用python pip安装包的时候报错: Traceback (most recent call last): File "/usr/local/bin/pip", line 7 ...
- MongoDB基本方法
一.MongoDB Limit与Skip方法 MongoDB Limit() 方法 如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一 ...
- android studio 汉化包 美化包
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 汉化包 百度云盘 下载地址:https://pan.baidu.com/s/1pLjwy ...