学习笔记-使用Sublime Text3+Ctags+Cscope替代Source Insight
// 转载:http://www.aichengxu.com/view/2459203
Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。
Sublime快捷键
ctrl+shift+p:打开命令行ctrl+p:搜索项目中的文件,支持模糊匹配
ctrl+r:列出当前文件中的所有函数,同ctrl+p后按一个@符号一样,其实可以把ctrl+r理解成ctrl+p的快捷键
ctrl+r+‘:’/’#’:先删除前面的’@‘,接‘:’,再在后面输入行号,跳转指定行,接’#’,搜索字符串,注意,支持组合使用,例如,可以在’@‘/’:’/’#’前面加上文件名字,在指定文件里面进行相应的操作,例如,ctrl+p后,输入file_name@,就直接列出了file_name文件里面的函数
ctrl+f:当前文件中查找关键字
ctrl+shift+鼠标左键:选中函数,定位函数定义位置
ctrl+t:按两次T,定位函数定义的地方,与上面ctrl+shift+鼠标左键一样
ctrl+shift+f:在所有文件里面搜索
多重选择,按下ctrl,在希望出现光标的地方点击
F11:全屏
shift+F11:全屏免打扰模式,只编辑当前文件
Ctrl+M 光标移动至括号内开始或结束的位置
Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号)
Esc 退出光标多行选择,退出搜索框,命令框等
Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本
Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名、函数名等
Package Control插件
安装Package Control插件,有两种方式,一种是通过命令行,另一种是通过下载安装包一.命令行安装
打开控制台,直接通过Ctrl+~,或者通过View->Show Console粘贴下面内容到控制台
Sublime text 3
[code]import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())
Sublime text 2
[code]import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')
二.下载安装包安装
点击 Preferences->Browse Packages… menu选择安装路径下载Package Control.sublime-package,并且拷贝到安装路径
重启Sublime Text
安装成功后,将会看到Perference->Package control tab
CTags插件安装
为sublime安装ctags
使用Package Control功能安装ctags插件。使用快捷键
cmd+shift+p启动命令行
键入
install packages。回车执行,拉取插件列表要等一小会
键入
ctags回车安装,稍等一会看到左下角提示安装成功就好了
但是,现在还不可以使用ctag插件,还需要下载安装ctag工具
安装ctags工具
这里我们通过brew工具,下载ctags。如果你没有安装brew,自行安装。[code]$sudo brew install ctags
找到ctags工具存放的目录。一般存放在“/usr/local/bin/ctags”中。
配置ctags
使用ctags,出现错误
如果,右键菜单中执行Navigate to Definition菜单项,左下角会有如下提示:[code][Errno 1] /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ctags: illegal option -- R usage: ctags [-BFadtuwvx] [-f tagsfile] file ...
这是因为我们还没有配置ctags
配置ctags
打开菜单在Preferences(设置)菜单中打开Package Control(插件管理器)settings->ctags->settings-user和settings-default把default中的配置全部复制到user中,然后改一下command配置项,为ctags的可执行文件路径(一般为“/usr/local/bin/ctags”)
如下图:
使用ctags
在想要导入的工程的根路径下,输入以下命令[code]$ctags -R -f .tags
sublime text 导入工程
project->add folder to project,选择要导入的文件。Cscope插件安装
为sublime安装Cscope
使用Package Control功能安装Cscope插件。使用快捷键
cmd+shift+p启动命令行
键入
install packages。回车执行,拉取插件列表要等一小会
键入
Cscope回车安装,稍等一会看到左下角提示安装成功就好了
但是,现在还不可以使用Cscope插件,还需要下载安装Cscope工具
安装Cscope工具
这里我们通过brew工具,下载Cscope。[code]$sudo brew install Cscope
找到Cscope工具存放的目录。一般存放在“/usr/local/bin/Cscope”中。
配置Cscope
打开配置文件
使用cscope和使用ctags一样,需要在sublime中配置Cscope的配置文件。但是,和ctags不一样的是,我们现在需要在sublime应用程序中,找到Cscope的配置文件(CscopeSublime.sublime-settings)
在我的电脑中,Cscope配置文件位置为:
[code]/Users/username/Library/Application\ Support/Sublime\ Text\ 2/Packages/Cscope/CscopeSublime.sublime-settings
打开菜单在Preferences(设置)菜单中打开Browse Packages,就可以到达相应目录了。
如图:
设置cscope工具路径
在配置文件中,添加下面的信息“executable”: “cscope工具位置(一般为“/usr/local/bin/cscope”)”
使用cscope
在想要导入的工程的根路径下,输入以下命令[code]find . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.S" -o -name "*.ch" -o -name "*.cpp" > cscope.files cscope -bkq -i cscope.files
参数解释:
R 表示把所有子目录里的文件也建立索引b 表示cscope不启动自带的用户界面,而仅仅建立符号数据库
q 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
k 在生成索引文件时,不搜索/usr/include目录
find命令:在这里不做解释。自行参考: http://www.cnblogs.com/peida/archive/2012/11/16/2773289.html
总结:
安装好Ctags和Cscope工具之后,可以在想要导入的工程的根路径下,通过下面命令建立Cscope索引数据库和.tags文件。[code]find . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.S" -o -name "*.ch" -o -name "*.cpp" > cscope.files cscope -bkq -i cscope.files ctags -R -f .tags
现在,我们就可以使用这两个命令了。