Sublime Text 3 史上最性感的编辑器

linux下安装,一种办法是从官网下载 tar.bz ,手动安装。

这里介绍用 apt-get 自动安装方法:

[plain] view plaincopyprint?在CODE上查看代码片

  1. sudo add-apt-repository ppa:webupd8team/sublime-text-2   

  2. sudo apt-get update  

  3. sudo apt-get install sublime-text-dev  

命令结束后,一切搞定!

看看应用列表里是不是出来个亲切的图表?(虽然这个图标一点也不亲切。。)


修改siderbar颜色

Sublime Text 3 史上最性感的编辑器_第1张图片


Windows

修改 主题文件:  /Pristine Packages/Theme - Default.sublime-package/Default.sublime-theme

背景色

[javascript] view plaincopyprint?在CODE上查看代码片

  1. {  

  2.         "class""sidebar_tree",  

  3.         "row_padding": [8, 3],  

  4.         "indent": 12,  

  5.         "indent_offset": 17,  

  6.         "indent_top_level"false,  

  7.         "layer0.tint": [30, 30, 30],  

  8.         "layer0.opacity": 1.0,  

  9.         "dark_content"false  

  10. },  

文字

[javascript] view plaincopyprint?在CODE上查看代码片

  1. {  

  2.         "class""sidebar_label",  

  3.         "color": [150, 150, 150],  

  4.         "font.bold"false  

  5.         // , "shadow_color": [250, 250, 250], "shadow_offset": [0, 0]  

  6. },  

分割线

[javascript] view plaincopyprint?在CODE上查看代码片

  1. {  

  2.         "class""sidebar_container",  

  3.         "layer0.tint": [10, 10, 10],  

  4.         "layer0.opacity": 1.0,  

  5.         "layer0.draw_center"false,  

  6.         "layer0.inner_margin": [0, 0, 1, 0],  

  7.         "content_margin": [0, 0, 1, 0]  

  8. },  

其实RGB颜色大家都明白,可以改成自己喜欢的样子。

PS:备份原来的东西的时候一定要把类型名改了,因为sublime会去加载所有的包。

另:感谢 亦翔百科给予很大帮助


Linux

注意一下Sublime存放的位置就可以:/usr/lib/sublime-text-2
如果是安装包安装,一般是 /opt 下。
附: linux目录解析


MAC OS X

OS下有些麻烦,不能直接修改,需要点工具读写文件,我是在win下改好后再覆盖过来的。


安装插件

同vim一样,sublime本身不过只是一个编辑器,要想把它改装成IDE,需要安装各种插件;当然,即便你不需要插件它本身的强大也可以给你带来意想不到的惊喜!


首先搞定 插件管理器

顾名思义是用来管理插件的工具,先安上它再搞别的插件就方便了。

安装方法:

选择菜单 view->show console ,这时候你就可以看到下边出现了 控制台窗口。(显示框+输入框)这里可以执行python代码

输入以下代码,就可以安装好 插件管理器(package control)了

插一句:很多地方的代码为 import urllib2,os; 这个是python2.x的代码,在python3.x里已经换成了 import urllib.request,os; 如果你是Sublime2.0及以下的版本,请自行修改代码。

[python] view plaincopyprint?在CODE上查看代码片

  1. 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())  

接下来一定记住先重启软件!

按住ctrl+shift+p 


可以去装自己喜欢的插件了

装完插件管理器,你就可以去找自己需要的插件然后安装。

有一些网站会总结一些不错的插件,你可以去试试。

当然我更希望你先看已看我写的。。

快速编码类

Emmet :跟Zen Coding一样,但是ST3已不再支持 Zen,这个也是一样的,但是要注意先禁掉 sublime 本身的自动补全功能,在Preferens -> Setting-User 里添加

代码格式化

代码格式化包括各种语言的,这里列举几个:(所有的插件都可以在 Package control 里直接搜索得到)

C / C++:SublimeAStyleFormat

HTML:Tag

List:

看起来是一份不错的总结

一些必不可少的 ST 插件

20个强大的插件


配置编译环境


控制台输入(以C++为例)

原理很简单,就是在外部建立一个用来执行文件的 bat,然后调用它。注意的就是,需要用start 来打开一个新窗口,同时需要 pause 一下来看结果,其中很蛋疼的就是Sublime默认后台执行你的start,如果你的pause和start放在一个文件了pause对start %1 的文件是无效的,因此其实需要建立两个文件。注意环境变量。。。(关于什么是环境变量,三两句解释不清楚,最好自己百度一下。)

配好之后个人感觉控制台输入意义不是很大,做题的话都是从文件读入,做开发基本不需要读入。So~ 各位慎重。

MyCRun.bat

[plain] view plaincopyprint?在CODE上查看代码片

  1. @echo off  

  2. %1  

  3. echo.  

  4. echo -------------------  

  5. pause  

  6. exit  


MyCallRun.bat

[plain] view plaincopyprint?在CODE上查看代码片

  1. @start  MyCRun %1  


配置文件在 Sublime Text 3\Packages\C++.sublime-package 。 先备份一下。

修改里面的 C++.sublime-build 为

[plain] view plaincopyprint?在CODE上查看代码片

  1. {  

  2.     "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\"",  

  3.     "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",  

  4.     "working_dir": "${file_path}",  

  5.     "selector": "source.c, source.c++",  

  6.   

  7.     "variants":  

  8.     [  

  9.         {  

  10.             "name": "Run",  

  11.             "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && MyCallRun \"${file_path}/${file_base_name}.exe\""    //  其实就是这里加了个MyCallRun  

  12.         }  

  13.     ]  

  14. }  



C/C++

Sublime Text 3 默认配置好了 c++ 。但是需要你自己把 gcc 目录添加进环境变量

Java

Sublime Text 3 默认只运行了 javac,需要自己添加运行。
苦逼看不懂 Sublime 的命令格式,于是把 javac 改成一个自己的bat。(感觉也可以像C++那样用 && 连起来)
在命令行可直接访问的地方建立 myJRun.bat (我直接放在 jdk/bin 下了)

[plain] view plaincopyprint?在CODE上查看代码片

  1. @ECHO OFF    

  2. cd %~dp1    

  3. ECHO Compiling %~nx1...    

  4. IF EXIST %~n1.class (    

  5. DEL %~n1.class    

  6. )    

  7. javac %~nx1    

  8. IF EXIST %~n1.class (    

  9. ECHO Running...  

  10. ECHO ----------------------OUTPUT----------------------  

  11. java %~n1    

  12. )  

注意不能使用 cls 。

修改java的编译选项(备份好原来的)。

目录:Packages/Java.sublime-package/JavaC.sublime-build

[plain] view plaincopyprint?在CODE上查看代码片

  1. {  

  2.     "shell_cmd": "myJRun.bat \"$file\"",  

  3.     "file_regex": "^(...*?):([0-9]*):?([0-9]*)",  

  4.     "selector": "source.java"  

  5. }  

这样以后写的Java代码点 Build 就会自动运行了。

这种办法不能跨平台,再研究研究Sublime自己的方式。


Go

用 Sublime 开发 golang 的环境很简单,只需要安装一个 GoSublime 就差不多了。


Ubuntu下输入中文

参考整理 这里

需要自己编译一个文件加载运行。所以需要用到一些编译环境

步骤1:安装gtk环境

[plain] view plaincopyprint?在CODE上查看代码片

  1. sudo apt-get install libgtk2.0-dev pkg-config  


另外貌似不支持ibus,我用的 fcitx+sogou

步骤2:保存下面这个文件到 sublime_imfix.c

[cpp] view plaincopyprint?在CODE上查看代码片

  1. /* 

  2. sublime-imfix.c 

  3. Use LD_PRELOAD to interpose some function to fix sublime input method support for linux. 

  4. By Cjacker Huang <jianzhong.huang at i-soft.com.cn> 

  5.  

  6. gcc -shared -o libsublime-imfix.so sublime_imfix.c  `pkg-config --libs --cflags gtk+-2.0` -fPIC 

  7. LD_PRELOAD=./libsublime-imfix.so sublime_text 

  8. */  

  9. #include <gtk/gtk.h>  

  10. #include <gdk/gdkx.h>  

  11. typedef GdkSegment GdkRegionBox;  

  12.   

  13. struct _GdkRegion  

  14. {  

  15.   long size;  

  16.   long numRects;  

  17.   GdkRegionBox *rects;  

  18.   GdkRegionBox extents;  

  19. };  

  20.   

  21. GtkIMContext *local_context;  

  22.   

  23. void  

  24. gdk_region_get_clipbox (const GdkRegion *region,  

  25.             GdkRectangle    *rectangle)  

  26. {  

  27.   g_return_if_fail (region != NULL);  

  28.   g_return_if_fail (rectangle != NULL);  

  29.   

  30.   rectangle->x = region->extents.x1;  

  31.   rectangle->y = region->extents.y1;  

  32.   rectangle->width = region->extents.x2 - region->extents.x1;  

  33.   rectangle->height = region->extents.y2 - region->extents.y1;  

  34.   GdkRectangle rect;  

  35.   rect.x = rectangle->x;  

  36.   rect.y = rectangle->y;  

  37.   rect.width = 0;  

  38.   rect.height = rectangle->height;   

  39.   //The caret width is 2;   

  40.   //Maybe sometimes we will make a mistake, but for most of the time, it should be the caret.  

  41.   if(rectangle->width == 2 && GTK_IS_IM_CONTEXT(local_context)) {  

  42.         gtk_im_context_set_cursor_location(local_context, rectangle);  

  43.   }  

  44. }  

  45.   

  46. //this is needed, for example, if you input something in file dialog and return back the edit area  

  47. //context will lost, so here we set it again.  

  48.   

  49. static GdkFilterReturn event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer im_context)  

  50. {  

  51.     XEvent *xev = (XEvent *)xevent;  

  52.     if(xev->type == KeyRelease && GTK_IS_IM_CONTEXT(im_context)) {  

  53.        GdkWindow * win = g_object_get_data(G_OBJECT(im_context),"window");  

  54.        if(GDK_IS_WINDOW(win))  

  55.          gtk_im_context_set_client_window(im_context, win);  

  56.     }  

  57.     return GDK_FILTER_CONTINUE;  

  58. }  

  59.   

  60. void gtk_im_context_set_client_window (GtkIMContext *context,  

  61.           GdkWindow    *window)  

  62. {  

  63.   GtkIMContextClass *klass;   

  64.   g_return_if_fail (GTK_IS_IM_CONTEXT (context));大  

  65.   klass = GTK_IM_CONTEXT_GET_CLASS (context);  

  66.   if (klass->set_client_window)  

  67.     klass->set_client_window (context, window);  

  68.   

  69.   if(!GDK_IS_WINDOW (window))  

  70.     return;  

  71.   g_object_set_data(G_OBJECT(context),"window",window);  

  72.   int width = gdk_window_get_width(window);  

  73.   int height = gdk_window_get_height(window);  

  74.   if(width != 0 && height !=0) {  

  75.     gtk_im_context_focus_in(context);  

  76.     local_context = context;  

  77.   }  

  78.   gdk_window_add_filter (window, event_filter, context);   

  79. }  


步骤3:编译之

[plain] view plaincopyprint?在CODE上查看代码片

  1. gcc -shared -o libsublime-imfix.so sublime_imfix.c  `pkg-config --libs --cflags gtk+-2.0` -fPIC  

步骤4:运行

其实到这里就可以运行了。试试

[plain] view plaincopyprint?在CODE上查看代码片

  1. LD_PRELOAD=./libsublime-imfix.so sublime_text  


应该就成功了吧,但是不能每次都这么输命令,我是这么处理的

- 把 sublime_imfix.so  放在sublime安装目录 (我的在 /opt/sublime_text/)

- 在 /usr/local/bin 或者其他PATH下 新建一个文件Subl写入:

[plain] view plaincopyprint?在CODE上查看代码片

  1. LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text  

- 新建一个Launcher命令为 /usr/local/bin/Subl (大写只是用来区别于一般命令)
大功告成!


关于破解的那点事儿

网上关于sublime的破解方法,一搜一大堆。但是我至今都没有去破解,原因很简单,如果一个可以无限期试用的软件你都忍心破解的话。。大家同为开发人员,如果自己都去无良的搞破解,还指望谁来为软件付费?(我一个学机械的朋友如是说)


你可能感兴趣的:(Sublime Text 3 史上最性感的编辑器)