把sublime3打造成c++开发环境
安装sublime 3
- sudo add-apt-repository ppa:webupd8team/sublime-text-3
- sudo apt-get update
- sudo apt-get install sublime-text-installer
package control安装
ctrl + `(1旁边的波浪线)
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())
插件安装
插件安装方法: ctrl + shift + p
sublime具体插件: https://packagecontrol.io/search
插件名称 | 简介 |
---|---|
Emmet | 前端开发神器 |
sublimeLinter | 代码检测工具 |
SideBarEnhancements | 侧边栏 |
SyncedSideBar | 实时更新侧边栏的内容 |
BracketHighlighter | 高亮 |
SublimeCodeIntel | 代码自动补全 |
Alignment | 代码自动对齐 |
DocBlockr | 代码自动注释 |
ConvertToUTF8 | 解决中文乱码问题 |
All AutoComplete | 让代码自动完成的匹配从所有打开的文件里去匹配 |
C++11 | 添加c++11语法支持 |
C++ Completes | c++语法支持 |
C++ Snippets | c++相关代码片段 |
C++ NamespaceTool | 自动添加命名空间 |
C++YouCompleteMe | c++语法 |
Markdown Preview | mkd预览 |
MarkdownEditing | mkd编辑 |
ubuntu配置SublimeClang
cd ~./config/sublime-text-3/Packages
git clone --recursive https://github.com/quarnster/SublimeClang SublimeClang
cd SublimeClang
git pull && git submodule foreach --recursive git pull origin master
// 拷贝libclang.so到internals文件夹
sudo apt-get install libclang-3.5
ldconfig -p | grep clang
cp /usr/lib/i386-linux-gnu/libclang-3.5.so ~/.config/sublime-text-3/Packages/SublimeClang/internals/libclang.so
// 手动编译出libcache.so
cd src
mkdir build
cd build
cmake ..
make
重启sublime即可
配置sublimeClang: perference -> package setting ->sublimeClang ->setting user
{
"show_output_panel": false,
"dont_prepend_clang_includes": false,
"inhibit_sublime_completions": false,
"options":
[
"-std=c++11",
"-isystem", "/usr/include",
"-isystem", "/usr/include/c++/*",
"-isystem", "/usr/include/c++/4.8",
"-isystem", "/usr/include/c++/4.8/*",
"-isystem", "/usr/include/boost",
"-isystem", "/usr/include/boost/**",
"-isystem", "/usr/lib/gcc/x86_64-linux-gnu/4.8/include",
"-isystem", "/usr/lib/gcc/x86_64-linux-gnu/4.8/include/*"
]
}
根据自己的实际的库安装的位置进行配置
Cscope配置(代码调用查看)
- sudo apt-get install cscope
- perference -> package control -> install package -> cscope
- perference -> package settings -> CscopeSublime ->setting user
- 右键点击工程->选择Cscope: rebuild database
我的配置
{
// All options in here can also be specified in your user settings
// with the prefix "CscopeSublime_".
// For example if you have
//
// {
// "CscopeSublime_display_outline": false
// }
//
// in your user settings, this will override the settings specified
// in this file.
// Whether or not to draw an outline around the matched symbol in the lookup results
"display_outline": true,
// Whether to prompt the user to edit/confirm the symbol before searching
"prompt_before_searching": true,
// The "cscope" program executable name. If needed, you can change this
// in your user settings to be the full path to the cscope executable.
// If you leave this as the default (just "cscope"), then your system
// $PATH (or %PATH% for Windows users) will be searched.
//
// Linux and OS X example: "executable": "/usr/bin/cscope"
// Windows example: "executable": "C:\\cscope\\cscope.exe"
"executable": "cscope",
// A location for the cscope database - this will be used in preference to any 'found' database
"database_location": "/home/hhf/workspace/cscope.out"
}
Ctags
- 下载ctags: http://ctags.sourceforge.net/
- perference -> package control -> install package -> ctags
- 右键点击工程->选择ctags: rebuild tags
导入工程
- Project -> Add Floder to Project -> 选择你的工程
- Project -> Save project as -> 找个地方存你的工程文件
- Edit Project 写入自己的配置文件
我的配置
{
"folders":
[
{
"follow_symlinks": true,
"path": "/home/hhf/workspace/firmware/main"
}
],
"settings":
{
"sublimeclang_options":
[
"-I/home/hhf/workspace/firmware/main",
"-I/home/hhf/workspace/firmware/main/include",
"-I/home/hhf/workspace/firmware/main/json",
"-I/home/hhf/workspace/firmware/main/main",
"-I/home/hhf/workspace/firmware/main/util",
"-I/home/hhf/workspace/firmware/main/speech",
"-I/home/hhf/workspace/firmware/main/main/Skills",
]
}
}
这个要根据自己工程的实际路径进行配置, 不然就找不到相关的头文件路径
适配eclipse的快捷键
[
/**
* 适配eclipse快捷键
*
* 下面这位仁兄早就有了这个想法
* Eclipse shortcuts for Sublime Text 2
* http://icoloma.blogspot.com/2011/10/eclipse-shortcuts-for-sublime-text-2.html
*/
{ "keys": ["alt+."], "command": "auto_complete" },
{ "keys": ["ctrl+i"], "command": "reindent" },
// 当前行和下面一行交互位置
{ "keys": ["alt+up"], "command": "swap_line_up" },
{ "keys": ["alt+down"], "command": "swap_line_down" },
// 删除整行
{ "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Line.sublime-macro"} },
// 光标移动到指定行
{ "keys": ["ctrl+l"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },
// 快速定位到选中的文字
{ "keys": ["ctrl+k"], "command": "find_under_expand_skip" },
// { "keys": ["ctrl+shift+x"], "command": "swap_case" },
{ "keys": ["ctrl+shift+x"], "command": "upper_case" },
{ "keys": ["ctrl+shift+y"], "command": "lower_case" },
// 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置, 不一定是最后)
{ "keys": ["shift+enter"], "command": "run_macro_file", "args": {"file": "Packages/Default/Add Line.sublime-macro"} },
// 当前文件中的关键字(方便快速查找内容)
{ "keys": ["ctrl+alt+o"], "command": "show_overlay", "args": {"overlay": "goto", "text": "#"} },
// 文件内查找/替换
{ "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "replace"} },
// 全局查找/替换, 在查询结果中双击跳转到匹配位置
{"keys": ["ctrl+h"], "command": "show_panel", "args": {"panel": "find_in_files"} },
]
sublime 本身的一些快捷键
快捷键 | 作用 |
---|---|
ctrl + p | 快速打开文件 |
ctrl + r | 本文件中函数列表 |
ctrl + shift + p | 快速打开安装包 |
把sublime3打造成c++开发环境的更多相关文章
- sublime3 配置go的开发环境
配置go的环境变量:https://studygolang.com/articles/4910 配置sublime:https://studygolang.com/articles/4938
- CentOS6.5配置python开发环境之一:CentOS图形化界面显示
这两天在配置centos系统下python的开发环境和工具. 刚用centos,做做记录可以方便以后有需要的人...查资料确实挺麻烦的 centos6.5 sublime3 python27 subl ...
- 在win10系统环境下,安装配置sublime 3,构建python和vue.js开发环境(插件)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_131 疫情当下,最近一直在用mac下的虚拟机运行win10系统,由于在线人数过多,直播授课的时候使用vscode的时候内存暴涨,于 ...
- Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境
一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...
- 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
- 在Ubuntu下搭建ASP.NET 5开发环境
在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...
- Linux安装LAMP开发环境及配置文件管理
Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...
- Angular企业级开发(2)-搭建Angular开发环境
1.集成开发环境 个人或团队开发AngularJS项目时,有很多JavaScript编辑器可以选择.使用优秀的集成开发环境(Integrated Development Environment)能节省 ...
随机推荐
- Starting MySQL....The server quit without updating PID file错误解决办法
出现错误:Starting MySQL....The server quit without updating PID file 检查错误文件: /var/lib/mysql/xxxx.err,根据其 ...
- Hibernate Validator--创建自己的约束规则
尽管Bean Validation API定义了一大堆标准的约束条件, 但是肯定还是有这些约束不能满足我们需求的时候, 在这种情况下, 你可以根据你的特定的校验需求来创建自己的约束条件. 3.1. 创 ...
- java web基础学习 Forward和Redirect区别
Forward和Redirect代表了两种请求转发方式:直接转发和间接转发.对应到代码里,分别是RequestDispatcher类的forward()方法和HttpServletRequest类的s ...
- BackgroundWorker 控件
BackgroundWorker是.net里用来执行多线程任务的控件,它允许编程者在一个单独的线程上执行一些操作.耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 始终处于停 ...
- JVM类加载(1)—加载
1.加载: 查找并加载类,将.class文件中的二进制数据读入到内存中,放在运行时数据区的方法内,然后在堆内创建一个java.lang.class对象用来封装类在方法区内的数据结构.并且向程序员提供了 ...
- 问题:C#调webservice超时;结果:C#调用webservice服务超时
C#调用WebService服务时,报错,The operation has timed out,意思是“操作超时”. 方法/步骤 首先修改服务端配置 WebService服务所在站点为服务端,它提供 ...
- django examples 学习笔记(1)创建一个独立的python环境
pip install virtualenv 创建一个虚拟环境 virtualenv my_env 创建一个独立的环境 source my_env/bin/activate 激活 ...
- java 中Int和Integer区别以及相关示例
Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入不是对象的基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrappe ...
- Web Pages(单页面模型)
.NET 是一套框架,用来个HTML.JS.CSS和服务器端脚本构建网页和网站. 可以有三种开发模式:Web Pages(单页面模型).MVC(模型视图控制器).Web Forms(事件驱动模型) W ...
- redis-数据类型-string、hash、list、set、zset
String 类型操作string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象. $redis-> ...