Sublime Text 折腾笔记

(尝试传教

上两张配置完成的图

0x00 基础配置

前往 https://www.sublimetext.com/ 下载 Sublime Text 3

安装完成后打开 Sublime ,选择顶栏中的 View -> Side Bar -> Show Side Bar 或快捷键 Ctrl+K+B(要按顺序按下) 来显示侧边栏。

把一个文件夹拖到侧栏中以显示目录树(像上面图中一样)

0x01 配置编译环境

以管理员身份运行 cmd(Win+X然后A
输入如下命令:

setx "Path" "C:\Program Files (x86)\Dev-Cpp\MinGW64\bin;%Path%" /m

将其中C:\Program Files (x86)\Dev-Cpp\MinGW64\bin改为你的编译器所在目录的路径

注意:千万不要在 powershell 中运行如上命令。请使用 cmd

(当然你也可以在计算机->高级系统设置->环境变量->系统变量->Path 中设置)

打开Sublime,找到 Tools -> Build System -> New Build System

粘贴如下代码,并保存在Sublime配置默认目录(可以在 Preferences -> Browse Packages 里找到)的 User 目录下,保存文件名为 cpp (或者任何你喜欢的名字)。

{
    "encoding": "utf-8",
    "working_dir": "$file_path",
    "shell_cmd": "g++ -Wall -std=c++11 \"$file_name\" -o \"$file_base_name\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "selector": "source.c++",

    "variants": 
    [
        {   
        "name": "Run",
            "shell_cmd": "g++ -Wall -std=c++11 \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\""
        }
    ]
}

重启Sublime,在 Build System 里找到你刚刚保存的东西,单击以启用。

然后你就可以按 Ctrl+B 编译你的 C++ 程序了

0x02 快捷键

Ctrl+F:搜索
Ctrl+H:替换
Ctrl+P:在打开的文件夹中搜索文件
Ctrl+B :编译

0x03 插件

安装 Package Control

按 Ctrl+` 以打开 Console,在其中输入如下代码:

import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; 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)

以安装 Package Control。(可能会卡一会

安装完成后,按 Ctrl+Shift+P 进入命令面板,输入 Package Control: Install Package 来进入安装插件的页面。(可能会卡很久

中文界面

在安装插件页面中输入 Chinese ,在搜索到的结果中随便找一个安装(单击对应插件即可)以获得中文界面。

ConvertToUTF8

在安装插件页面中输入 ConvertToUTF8 安装。这个插件是用来转换文件编码的。

透明背景

在安装插件页面中输入 Transparency 安装。

之后可以使用 Shift+1~6 来改变背景透明度

很遗憾 Sublime 没有自定义背景插件(((

主题

推荐 ayu / Material Theme。同样在安装插件界面安装即可。

代码格式化

安装 Clang Format 插件。

安装 LLVM:

LLVM Download Page 最新版本的 Pre-Built Binaries 中找到适合你电脑的版本并下载 & 安装。

安装过程中记得勾选“添加至系统路径”这样之后就无需设置了

之后进入 Sublime,按 Ctrl+Alt+A (和QQ的截屏快捷键重合,建议关掉或者改一下截屏快捷键)格式化选中的代码。

Ctrl+Shift+P 并输入 Clang Format: Select Style 来选择一个 Style

推荐 Webkit

当然我们发现它仍然有很多不尽人意的地方,于是我们在刚才的 Select Style 页面中选择 Custom。然后进入 Perferences -> Package Settings -> Clang Format -> Custom Style - User 来自定义配置。

列一下我的配置以供参考(大括号不换行,使用 Tab,运算符之间空格,不允许多条代码在同一行)

"BasedOnStyle": "WebKit",
"BraceWrapping":{
      "AfterControlStatement":   false,
       "AfterFunction":          false,
       "AfterNamespace":         false,
       "AfterStruct":            false,
       "BeforeElse":             false
},
"BreakBeforeBraces": "Attach",
"MaxEmptyLinesToKeep": 1,
"TabWidth": 4,
"UseTab": "Always"

0x04 Snippets

Ref

创建snippets

新建和保存

菜单栏中依次选择 Tools | Developer | New Snippet... 就会新建一个扩展名为.sublime-snippet 的 XML 语法的文档,注意后缀是识别 snippets 的关键。

代码片段可以任意存储在 packages 文件夹下,默认会保存在 Packages\User 文件夹里,为了方便管理和使用建议再新建个文件夹例如 snippets,则路径为 Packages\User\snippets。

默认结构如下:

<snippet>
	<content><![CDATA[
Hello, ${1:this} is a ${2:snippet}.
]]></content>
	<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
	<!-- <tabTrigger>hello</tabTrigger> -->
	<!-- Optional: Set a scope to limit where the snippet will trigger -->
	<!-- <scope>source.python</scope> -->
</snippet>

content

<content></content>中必须包含<![CDATA[…]]>,在这里面写自定义的代码片段。

代码片段如果含有]]>,需写成]]$NOT_DEFINED>

如果含有 $,需写成 \$

tabTrigger

<tabTrigger></tabTrigger> 中设置让Sublime自动补全的触发词(trigger keyword)。

scope

设置代码片段在何种语言环境下激活,默认写的是python。

想指定多个scope,可以使用英文逗号,来分隔。

如何知道文档的Scope是什么?菜单栏依次选择 Tools | Developer | Show Scope Name...,快捷键是 Ctrl+Alt+Shift+P。

description

如果加了<description>描述内容</description>,点开 Tools | Snippets... 会显示你定义的描述内容。

如果不写则显示文件名。

设置光标位置Fields

<snippet>
    <content><![CDATA[
First Name: $1
Second Name: $2
Address: $3
]]></content>

美元符加数字即可设置 field markers 即光标的位置,按Tab键光标按数字依次从小到大循环,如上从 1 到 2 到 3 再到 1。

Shift+Tab 可以进行向上跳转。

Esc 结束跳转。

$0 表示最后一个位置。

镜像域 Mirrored Fields

相同编号的位置即是镜像域,可同时选中进行编辑。

占位符 Placeholders

{数字编号} 可以得到一个 Tab 占位符。

{1:default} 可以得到一个默认值。

按Tab键依次循环选中代码片段中的默认值。

如默认的代码片段 Hello, ${1:this} is a ${2:snippet}. 会依次循环选中单词 this snippet。

使用snippets

方法1:菜单栏点击 Tools | Snippets... ,弹出为当前语法可用的Snippet,点击即插入。

方法2:输入触发词然后按 Tab 键。