Sublime Text 3 我的配置

最近用Dev-Cpp快用腻了,来配置一波Sublime

C++ 配置

  1. Tools —> Build System —> New Build System…
  2. Ctrl+A全部删除,输入下面的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"encoding": "utf-8",
"working_dir": "$file_path",
"shell_cmd": ["g++ -Wall -std=c++11 \"$file_name\" -o \"$file_base_name\"", "-fexec-charset=gbk"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"selector": "source.c++",
"encoding": "cp936",
"variants":
[
{
"name": "Run",
"shell_cmd": "g++ -Wall -std=c++11 \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\""
}
]
}

其中我们注意几个地方:

  • "g++":编译器
  • "-std=c++11":依据C++11标准来编译(否则一些新特性会被判失效)
  • -Wall:开启-wall提示(竞赛党的福音)
  • "-fexec-charset=gbk":GBK编码格式,默认带中文的
  1. 保存即可(路径就是他的默认路径不要改,后缀也不能改,名字随便起,如cpp_11

最后就可以愉快的Ctrl+B手动Debug啦~~

2020.5.29 更新

考虑到上面那样配置显示不出程序运行时间,现在配置一波能够显示程序运行时间的操作

首先新建New Build System,然后复制如下代码进去并替换,保存为另一个名字(如 C++11_time)并退出

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"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++ -Wall -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\" && timer \"${file_path}/${file_base_name}\" < test.in > test.out"
}
]
}

在程序运行的文件夹下,创建一个timer.cpp文件,将如下代码复制进去,并保存运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <windows.h>
using namespace std;

int main(int argc, char** argv)
{
clock_t begin = clock();
system(argv[1]);
double used = 1000.0 * double(clock() - begin) / CLOCKS_PER_SEC - 200.0;
if (used < 0) used = 0.0;
printf("------------------------------\n");
printf("Time used: %.2lf ms.\n", used);
return 0;
}

最后,需要在程序运行的文件夹下,创建test.intest.out文件,最终,你的文件夹目录结构如下图所示:

image-2020052914134487

最后只需要在View里面设置一下Layout和Groups,就可以呈现出如下的样式

image-20200529141927647

愉快地享用吧!

2020.6.15 更新

但实际上上面那个方法不太好用,还不如自己手写#ifdef...#endif来得灵活,与是还是用第一版的C++配置代码(尝试过删除掉最后的&pause,但处理死循环问题就变得比较麻烦,还得打开任务管理器关闭进程),再在main函数内加入如下代码,就可以实现方案二一样的功能(记得需要在目录下创建一个test.intest.out文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define LOCAL
#ifdef LOCAL
freopen("test.in","r",stdin);
freopen("test.out","w",stdout);
clock_t _begin = clock();
#endif

......

#ifdef LOCAL
double _used = 1000.0 * double(clock() - _begin) / CLOCKS_PER_SEC - 200.0;
if (_used < 0) _used = 0.0;
printf("------------------------------\n");
printf("Time used: %.2lf ms.\n", _used);
#endif

Python 配置

(Python的Sublime交互式配置我快哭了,REPL安装好了之后Tools里居然没有?果断放弃,采用原始的Save+cmd+python xxx.py的形式搞)

2020.4.24 更新

ohhhhhh!电脑突然开窍了,配置好啦!现在奉上步骤

  1. Ctrl + Shift + P 唤出Package栏并输入IP (Install Package),回车等候(左下角有滚动的小条子)

  2. 等加载出来一个新的Package栏后,输入SublimeREPL(要安装的就是这个插件),然后回车等他安装

然后就好了,可以通过 Tools —> SublimeREPL —> Python —> Python - RUN current file来唤起控制台(在第二个标签页出现),这个时候就可以像Pycharm、Spyder一样在控制台控制输入了

为了方便,推荐 Shift + Alt + 8 唤起横向双栏的模式,然后F5调试(调试前记得保存代码),十分快乐

Sublime 主题&外观配置

主题用的是Sublime自带的Adaptive,它能自动适应我的Color主题

Color选用的是Tomorrow的Night(晚上用),以及Breakers(白天用)

字体选用Inconsolata-g,可以说是十分舒爽了

附上用户配置:

1
2
3
4
5
6
7
8
9
{
"color_scheme": "Packages/Tomorrow Color Schemes/Tomorrow Night.sublime-color-scheme",
"font_face": "Inconsolata-g",
"font_size": 11,
"ignored_packages":
[
],
"theme": "Adaptive.sublime-theme"
}

Sublime Snippet 设置

UPD 2020.6.15

一直以为Sublime无法设置像Dev-C++一样的缺省源,然而昨天查到了,在Sublime里面叫做Snippet(代码段),非常的方便

打开工具栏中的 Tools -> Developer -> New Snippet...,看到如下界面

image-20200615093633821

第3行中的内容就是代码段内容,可以自己添加更改,其中${1:this}为按下TAB建自动跳转的内容,冒号后面的文字为提示内容

第6行为代码段的名称,可以在写代码时输入该名称导入代码段

第8行为可使用该代码段的源代码文件类型,其类型的语法见下方官方文旦内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
ActionScript: source.actionscript.2
AppleScript: source.applescript
ASP: source.asp
Batch FIle: source.dosbatch
C#: source.cs
C++: source.c++
Clojure: source.clojure
CoffeeScript: source.coffee
CSS: source.css
D: source.d
Diff: source.diff
Erlang: source.erlang
Go: source.go
GraphViz: source.dot
Groovy: source.groovy
Haskell: source.haskell
HTML: text.html(.basic)
JSP: text.html.jsp
Java: source.java
Java Properties: source.java-props
Java Doc: text.html.javadoc
JSON: source.json
Javascript: source.js
BibTex: source.bibtex
Latex Log: text.log.latex
Latex Memoir: text.tex.latex.memoir
Latex: text.tex.latex
LESS: source.css.less
TeX: text.tex
Lisp: source.lisp
Lua: source.lua
MakeFile: source.makefile
Markdown: text.html.markdown
Multi Markdown: text.html.markdown.multimarkdown
Matlab: source.matlab
Objective-C: source.objc
Objective-C++: source.objc++
OCaml campl4: source.camlp4.ocaml
OCaml: source.ocaml
OCamllex: source.ocamllex
Perl: source.perl
PHP: source.php
Regular Expression(python): source.regexp.python
Python: source.python
R Console: source.r-console
R: source.r
Ruby on Rails: source.ruby.rails
Ruby HAML: text.haml
SQL(Ruby): source.sql.ruby
Regular Expression: source.regexp
RestructuredText: text.restructuredtext
Ruby: source.ruby
SASS: source.sass
Scala: source.scala
Shell Script: source.shell
SQL: source.sql
Stylus: source.stylus
TCL: source.tcl
HTML(TCL): text.html.tcl
Plain text: text.plain
Textile: text.html.textile
XML: text.xml
XSL: text.xml.xsl
YAML: source.yaml