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


↑ ↑ ↑ ↑ ↑ 请看文件夹 ↑ ↑ ↑ ↑ ↑


下载 / 安装


windows / MAC OS

官网下载,双击安装,这个都会吧~

linux

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

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

sudo add-apt-repository ppa:webupd8team/sublime-text-2 
sudo apt-get update
sudo apt-get install sublime-text-dev

命令结束后,一切搞定!

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


改动siderbar颜色


Windows

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

背景色
{
        "class": "sidebar_tree",
        "row_padding": [8, 3],
        "indent": 12,
        "indent_offset": 17,
        "indent_top_level": false,
        "layer0.tint": [30, 30, 30],
        "layer0.opacity": 1.0,
        "dark_content": false
},
文字
{
        "class": "sidebar_label",
        "color": [150, 150, 150],
        "font.bold": false
        // , "shadow_color": [250, 250, 250], "shadow_offset": [0, 0]
},
切割线
{
        "class": "sidebar_container",
        "layer0.tint": [10, 10, 10],
        "layer0.opacity": 1.0,
        "layer0.draw_center": false,
        "layer0.inner_margin": [0, 0, 1, 0],
        "content_margin": [0, 0, 1, 0]
},

事实上RGB颜色大家都明确,能够改成自己喜欢的样子。

PS:备份原来的东西的时候一定要把类型名改了,由于sublime会去载入全部的包。

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


Linux

注意一下Sublime存放的位置就能够:/usr/lib/sublime-text-2
假设是安装包安装,通常是 /opt 下。


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及下面的版本号,请自行改动代码。
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++为例)

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

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

MyCRun.bat

@echo off
%1
echo.
echo -------------------
pause
exit

MyCallRun.bat

@start  MyCRun %1

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

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

{
	"shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\"",
	"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
	"working_dir": "${file_path}",
	"selector": "source.c, source.c++",

	"variants":
	[
		{
			"name": "Run",
			"shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && MyCallRun \"${file_path}/${file_base_name}.exe\""    //  事实上就是这里加了个MyCallRun
		}
	]
}


C/C++

Sublime Text 3 默认配置好了 c++ 。可是须要你自己把 gcc 文件夹加入进环境变量

Java

Sublime Text 3 默认仅仅执行了 javac,须要自己加入执行。
苦逼看不懂 Sublime 的命令格式,于是把 javac 改成一个自己的bat。(感觉也能够像C++那样用 && 连起来)
在命令行可直接訪问的地方建立 myJRun.bat (我直接放在 jdk/bin 下了)
@ECHO OFF  
cd %~dp1  
ECHO Compiling %~nx1...  
IF EXIST %~n1.class (  
DEL %~n1.class  
)  
javac %~nx1  
IF EXIST %~n1.class (  
ECHO Running...
ECHO ----------------------OUTPUT----------------------
java %~n1  
)
注意不能使用 cls 。

改动java的编译选项(备份好原来的)。
文件夹:Packages/Java.sublime-package/JavaC.sublime-build
{
	"shell_cmd": "myJRun.bat \"$file\"",
	"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
	"selector": "source.java"
}
这样以后写的Java代码点 Build 就会自己主动执行了。
这样的办法不能跨平台,再研究研究Sublime自己的方式。


Go

用 Sublime 开发 golang 的环境非常easy,仅仅须要安装一个 GoSublime 就差点儿相同了。



Ubuntu下输入中文

參考整理 这里

须要自己编译一个文件载入执行。所以须要用到一些编译环境

步骤1:安装gtk环境

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

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

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

/*
sublime-imfix.c
Use LD_PRELOAD to interpose some function to fix sublime input method support for linux.
By Cjacker Huang <jianzhong.huang at i-soft.com.cn>

gcc -shared -o libsublime-imfix.so sublime_imfix.c  `pkg-config --libs --cflags gtk+-2.0` -fPIC
LD_PRELOAD=./libsublime-imfix.so sublime_text
*/
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
typedef GdkSegment GdkRegionBox;

struct _GdkRegion
{
  long size;
  long numRects;
  GdkRegionBox *rects;
  GdkRegionBox extents;
};

GtkIMContext *local_context;

void
gdk_region_get_clipbox (const GdkRegion *region,
            GdkRectangle    *rectangle)
{
  g_return_if_fail (region != NULL);
  g_return_if_fail (rectangle != NULL);

  rectangle->x = region->extents.x1;
  rectangle->y = region->extents.y1;
  rectangle->width = region->extents.x2 - region->extents.x1;
  rectangle->height = region->extents.y2 - region->extents.y1;
  GdkRectangle rect;
  rect.x = rectangle->x;
  rect.y = rectangle->y;
  rect.width = 0;
  rect.height = rectangle->height; 
  //The caret width is 2; 
  //Maybe sometimes we will make a mistake, but for most of the time, it should be the caret.
  if(rectangle->width == 2 && GTK_IS_IM_CONTEXT(local_context)) {
        gtk_im_context_set_cursor_location(local_context, rectangle);
  }
}

//this is needed, for example, if you input something in file dialog and return back the edit area
//context will lost, so here we set it again.

static GdkFilterReturn event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer im_context)
{
    XEvent *xev = (XEvent *)xevent;
    if(xev->type == KeyRelease && GTK_IS_IM_CONTEXT(im_context)) {
       GdkWindow * win = g_object_get_data(G_OBJECT(im_context),"window");
       if(GDK_IS_WINDOW(win))
         gtk_im_context_set_client_window(im_context, win);
    }
    return GDK_FILTER_CONTINUE;
}

void gtk_im_context_set_client_window (GtkIMContext *context,
          GdkWindow    *window)
{
  GtkIMContextClass *klass; 
  g_return_if_fail (GTK_IS_IM_CONTEXT (context));大
  klass = GTK_IM_CONTEXT_GET_CLASS (context);
  if (klass->set_client_window)
    klass->set_client_window (context, window);

  if(!GDK_IS_WINDOW (window))
    return;
  g_object_set_data(G_OBJECT(context),"window",window);
  int width = gdk_window_get_width(window);
  int height = gdk_window_get_height(window);
  if(width != 0 && height !=0) {
    gtk_im_context_focus_in(context);
    local_context = context;
  }
  gdk_window_add_filter (window, event_filter, context); 
}

步骤3:编译之

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

步骤4:执行

事实上到这里就能够执行了。试试
LD_PRELOAD=./libsublime-imfix.so sublime_text

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

- 把 sublime_imfix.so  放在sublime安装文件夹 (我的在 /opt/sublime_text/)

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

LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text
- 新建一个Launcher命令为 /usr/local/bin/Subl (大写仅仅是用来差别于一般命令)

大功告成!


关于破解的那点事儿


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




未完待续。


 

posted @ 2015-03-01 14:55  mengfanrong  阅读(151)  评论(0编辑  收藏  举报