zoukankan      html  css  js  c++  java
  • 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 3PackagesC++.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,假设一个能够无限期试用的软件你都忍心破解的话。

    。大家同为开发者,假设自己都去无良的搞破解。还指望谁来为软件付费?(我一个学机械的朋友如是说)





    待续。


     

  • 相关阅读:
    _bzoj1061 [Noi2008]志愿者招募【最小费用最大流】
    _bzoj2243 [SDOI2011]染色【树链剖分】
    _bzoj1013 [JSOI2008]球形空间产生器sphere【高斯消元】
    _bzoj1002 [FJOI2007]轮状病毒【瞎搞】
    leetcode 273 Integer to English Words
    leetcode 12 Integer to Roman
    leetcode 1071 Greatest Common Divisor of Strings
    lc6 ZigZag Conversion
    lc13 Roman to Integer
    leetcode 171 Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4568768.html
Copyright © 2011-2022 走看看