original page:http://blog.csdn.net/cywosp/article/details/32721011
点滴记录——Ubuntu 14.04中安装Sublime Text 3并使用SublimeClang
转载请说明出处:http://blog.csdn.net/cywosp/article/details/3272101
Sublime Text是个跨平台的编辑器,支持Windows、Linux、Mac系统平台,支持各种语言的代码编辑,配合上对应的插件,话上点时间学习,你将会对它爱不释手,大大的提高你的编码效率。本文将讲解在Ubuntu 14.04系统中安装SublimeText 3,并配置SublimeClang插件来配置C/C++开发环境。
1. Sublime Text 3的下载安装
到官方网站上http://www.sublimetext.com/3下载64位(系统位64位)的.deb安装包(http://c758482.r82.cf2.rackcdn.com/sublime-text_build-3059_amd64.deb),下载后双击安装即可。安装好之后,通过命令subl即可打开程序,此时已经可以编写代码了。在开始之前建议先记下一些常用的快捷键,可参考:http://blog.csdn.net/cywosp/article/details/31791881
2. 安装Package Control
cd ~/.config/sublime-text-3/Packages/
git clone https://github.com/wbond/package_control_channel.git Package\ Control
或者打开sublime_text然后按快捷键ctrl+`(Esc下面那个键),在弹出的命令输入窗口输入下面信息回车即可:
3. 安装强大的SublimeClang插件
SublimeClang是Sublime Text中唯一的C/C++自动补全插件,功能强大,自带语法检查功能,不过最近作者已经停止更新了,目前只能在Sublime Text 2的Package Control中可以找到并自动安装,在SublimeText 3中只能手动通过源码安装,其代码线在https://github.com/quarnster/SublimeClang中。具体安装步骤如下:
安装相关软件一切成功的话将会在SublimeClang/internals目录中生成libcache.so库文件。重启Sublime Text,然后按快捷键Ctrl + `(Esc下面那个键)打开自带的控制输出,看看有没有错误,如果没有错误就说明一切OK了。接下来就是配置自己的文件了,按下ctrl + shift + p快捷键,在弹出的输入框中输入 sublimeclang settings ,然后选择带User那一行,在打开的文件中输入如下信息:
sudo apt-get install cmake build-essential clang git
cd ~/.config/sublime-text-3/Packages
git clone --recursive https://github.com/quarnster/SublimeClang SublimeClang
cd SublimeClang
cp /usr/lib/x86_64-linux-gnu/libclang-3.4.so.1 internals/libclang.so #这一步很重要,如果你的clang库不是3.4版本的话,请将对应版本的库拷贝到internals中
cd src
mkdir build
cd build
cmake ..
make
{4. 工程实例
"show_output_panel": false,
"dont_prepend_clang_includes": true,
"inhibit_sublime_completions": false,
"options":
[
"-std=gnu++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/*"
]
}
注释:我的gcc版本为4.8,如果你的不是请替换对应的版本,在#include相应的头文件后保存当前文件,在接下来的操作中将更快的提示所包含在头文件的函数或者变量。
通过菜单栏中的Project -> Add Folder To Project...把你已有的原代码目录加入到Sublime Text中,然后通过Project -> Save Project As...来保存你的项目,这样就创建好了项目。例如我的机器在/media/WinE/WorkStation/Swift中有个C++项目,代码分别放在了Swift下的swift/base和swift/disruptor两个目录下,现在想要把这两个目录中的内容在写代码时能够自动提示则需要相应的配置修改。Project -> Edit Project,在所打开的配置文件中我更改如下:
{综合以上,如果你有什么问题,请能提出,大家一起进步,希望你能爱上个家伙。
"folders":
[
{
"follow_symlinks": true,
"path": "/media/WinE/WorkStation/Swift"
}
],
"settings":
{
"sublimeclang_options":
[
"-I/media/WinE/WorkStation/Swift",
"-I/media/WinE/WorkStation/Swift/swift/base",
"-I/media/WinE/WorkStation/Swift/swift/disruptor",
]
}
}
1.安装方法
1)使用ppa安装
sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer
卸载 sublime text 命令:
sudo apt-get remove sublime-text-installer
2)使用deb包安装
例如:
sudo dpkg -i sublime-text_build-3126_amd64.deb
3) 通过apt安装(强烈推荐)
参考: http://www.sublimetext.com/docs/3/linux_repositories.html#apt
安装GPG key:
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
确保apt能够使用https源
sudo apt-get install apt-transport-https
使用稳定版源
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
更新apt源并安装sublime-text
sudo apt-get update
sudo apt-get install sublime-text
2. 打开命令
subl
3.在Help里输入license key(license key可以网上自己搜索)
—– BEGIN LICENSE —– Michael Barnes Single User License EA7E-821385 8A353C41 872A0D5C DF9B2950 AFF6F667 C458EA6D 8EA3C286 98D1D650 131A97AB AA919AEC EF20E143 B361B1E7 4C8B7F04 B085E65E 2F5F5360 8489D422 FB8FC1AA 93F6323C FD7F7544 3F39C318 D95E6480 FCCC7561 8A4A1741 68FA4223 ADCEDE07 200C25BE DBBC4855 C4CFB774 C5EC138C 0FEC1CEF D9DCECEC D3A5DAD1 01316C36 —— END LICENSE ——
4.安装Packeage Control
可参考: https://packagecontrol.io/installation
在终端输入subl打开sublime text3, 使用快捷键ctrl + `(ESC下面的键),在弹出的控制台中输出以下代码:
import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
5.重启软件后可以在Preference菜单下找到Package Control命令
单击运行Packeage Control,搜索Install Package并进入该选项,此时即可为Sublime Text 3安装所需插件
6.关闭自动更新
Preferences -> Settings-User,在{}输入 ,"update_check":false
7.设置一个tab键对应4个空格
Preferences -> Settings-User,在{}输入
"tab_size": 4, "translate_tabs_to_spaces": true
8.解决中文无法输入问题
git clone https://github.com/lyfeyaj/sublime-text-imfix.git cd sublime-text-imfix/ sudo cp lib/libsublime-imfix.so /opt/sublime_text/ sudo cp src/subl /usr/bin/
关闭sublime的所有窗口,然后在终端输入subl,此时就可以输入中文了
但是如果将图标锁定到左侧任务栏后,再从任务栏启动后还是不能输入中文,解决方法:
hupeng@hupeng-vm:~$ which subl /usr/bin/subl hupeng@hupeng-vm:~$ cat /usr/bin/subl #查看一下subl命令做了什么 #!/bin/sh export LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "$@"hupeng@hupeng-vm:~$
注: export命令将变量导出,并使之在能在子shell中有效
最终解决方法:
sudo vi /usr/share/applications/sublime_text.desktop #修改三个Exec,在前面加入env LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so Exec=env LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text %F Exec=env LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text -n Exec=env LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text --command new_file
/usr/share/applications/sublime_text.desktop内容如下:
Desktop Entry] Version=1.0 Type=Application Name=Sublime Text GenericName=Text Editor Comment=Sophisticated text editor for code, markup and prose Exec=env LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text %F Terminal=false MimeType=text/plain; Icon=sublime-text Categories=TextEditor;Development; StartupNotify=true Actions=Window;Document; [Desktop Action Window] Name=New Window Exec=env LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text -n OnlyShowIn=Unity; [Desktop Action Document] Name=New File Exec=env LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text --command new_file OnlyShowIn=Unity;