界面

摘要

本文教你如何利用强大而优雅的代码编辑器SublimeText3和精灵小巧的C语言编译器TinyCC(Tiny C Compiler)配置一个简单可随身携带的C语言学习环境。

SublimeText简介

SublimeText是一个功能丰富、快捷而强大的文本和代码编辑软件,以下简称Sublime

Sublime的功能和特点

  • 启动速度快,并且可以高效地编辑大多数文本文件;
  • 强大的语法高亮系统,自带几十种语言的语法高亮规则,你还可以通过编写正则表达式来支持自定义的语法格式;
  • 漂亮而不失简洁的界面,为数众多的精雕细琢的主题和配色方案,相信总有一款适合你;
  • 强大而快速的文本查找和替换功能,支持正则表达式,支持在文件夹中查找和替换
  • 强大而便捷的跳转功能,包括跳转到某个符号某一行或项目中的某一个文件等;
  • 多步编辑可组合成为Sublime的大多数编辑功能都可通过快捷键快速完成;
  • 多光标同时编辑,你可以在多个地方插入光标,从而同时编辑文件的各个部分;
  • 强大的插件系统,以流行的脚本语言Python作为主要的插件开发语言;

一句话,用好Sublime,你可以表演很多编辑特技。

Tinycc简介

  • TCC法布里斯·贝拉(Fabrice Bellard,法国)大神写的小巧而快速的C语言编译器;
  • Tinycc非常小巧,在X86体系架构下TCC的可执行文件(包括C预处理、C编译器、汇编和链接)大小约为100KB;
  • 我用过最快的C语言编译器,比GCC(GNU编译器集合)快大约9倍;
  • tcc 加-run参数直接运行C语言源文件,无需生成可执行文件;
  • 在C源文件开头加入一行'#!/usr/local/bin/tcc -run'从而将该文件当做脚本调用(仅linux支持);
  • 通过libtcc,你可以将TCC作为动态代码生成的后端。

更多的功能和特点请参考Tinycc的主页https://bellard.org/tcc/

Sublime入门

安装Sublime

到Sublime的官网http://www.sublimetext.com/下载Sublime的安装包,点击运行安装包按部就班安装即可。如果你有使用Sublime的经验,将你原来的Sublime根目录下的Data目录完整地拷贝到你新安装的Sublime的根目录下面,即可实现Sublime的重装。
记得在安装的时候勾上Add to explorer context menu这一选项,这样你就可以很方便地在文件管理器中调用Sublime打开文件了。

安装 Package Control

Sublime的使用Package Control作为管理插件的插件,官网下载安装的Sublime默认是不自带Package Control的。这个时候只需在Sublime的控制台(你可通过快捷键Ctrl+`开启Sublime的控制台)运行一条命令:

sublime.run_command("install_package_control")

然后稍等一会即可成功安装Package Control。如下图:

安装Package ControlSublimeConsole

安装和卸载插件

  • 菜单栏Preferences中选Package Control,输入installremove可安装或卸载插件
  • 菜单栏Preferences中选Package Control,输入enabledisable可启用或禁用插件
  • 按下ctrl+shift+p后输入pcip(Package Control: Install Package)
  • 按下ctrl+shift+p后输入pcrp(Package Control: Remove Package)

更换主题和配色

  • 菜单栏Preferences菜单中的Color SchemeTheme可进行主题或配色的更换
  • 按下ctrl+shift+p,输入uiselect可看到主题或配色更换的命令,按回车键即可进入更换环境
  • 更换配色color
  • 更换主题theme

使用中文界面?

如果你想要使用中文界面,按照上面安装插件的方法,安装ChineseLocalizations这个插件之后就可以显示中文界面了(或许需要重启Sublime)。
换回英文界面的方法也很简单,卸载或禁用掉这个插件就可以了,如果还有问题,到你安装插件的文件夹下将Default目录删除即可。

给Sublime配置C语言运行环境

这里仅以Tinycc作为示例。

配置

到Tinycc官网下载Tinycc软件压缩包,解压重命名为Tinycc,拷贝到你安装插件的目录下的User目录中,然后在刚才的Tinycc目录下新建一个叫做TinyCC.sublime-build的文件,如果你是Windows系统,用Sublime打开后,在其中粘贴如下代码,保存即可,Linux和Mac用户我相信你们有能力自行配置。

{
    "cmd": ["${packages}/User/Tinycc/tcc.exe", "-o", "${file_base_name}.exe", "${file}"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c",
    "encoding": "gbk",
    "variants": [
        {
            "name": "Run",
            "cmd": ["${packages}/User/Tinycc/tcc.exe", "-run", "${file_name}"]
        },
        {
            "name": "RunInConsole",
            "cmd": ["cmd", "/c", "start", "cmd", "/c",
                "${packages}/User/Tinycc/tcc.exe -run ${file_name} &echo.&pause"]
        }
    ]
}

这个配置包含三个选项:

  • Tinycc: 编译C语言代码并生成可执行文件,不运行
  • Tinycc-Run: Tinycc直接运行C代码并输出结果,不能输入,因此如果代码里面有scanf、gets等函数,请勿使用此选项
  • Tinycc-RunInConsole: 在控制台运行,可以输入(代码中含有scanf、gets等函数时,建议使用此选项)

像这样配置之后,你可以将你配置好的Sublime打包压缩(有助于复制到U盘和别的电脑)存到U盘里,便可以随处使用了(前提是机器位数兼容)。

运行

Sublime默认使用快捷键Ctrl+BCtrl+Shift+B来编译或运行代码,你也可以自定义一些快捷键来快速编译或运行代码。比如笔者做了如下的快捷键配置:

{ "keys": ["ctrl+shift+c"], "command": "copy_path" },
{ "keys": ["f1"],"command": "toggle_side_bar"},
{ "keys": ["f5"], "command": "build", "args": {"variable": "Run"} },
{ "keys": ["f7"], "command": "build", "args": {"select": true} },

这个时候,单手按下F5便可以运行代码了,按下F7可以切换运行方式。

注意

Tinycc的编译速度飞快,并且可以直接运行C语言代码,但是没有安装足够的库和头文件,仅适合用于学习,不适合用于项目开发;
如果需要自动代码提示和补全的功能,请下载并安装LLVMhttp://clang.llvm.org/,安装插件ClangAutoCompleteEasyClangComplete,并在它们的设置里面加入你的编译器头文件所在的目录。

确认你的配置正确工作

新建一个HelloWorld.c并保存你电脑上面,复制如下C代码粘贴并保存,然后试运行一下以确认你的配置是否正确。

#include <stdio.h>

int main()
{
    printf("Hello World!\n");
    return 0;
}

如果配置正确,你可以看到如下效果:

  • 在控制台运行在控制台运行
  • Sublime直接输出Sublime直接输出

配置快捷键

在主菜单Preferences中选择进入Key Bindings后就可以看到Sublime的快捷键配置了,该文件是JSON格式的数据文件。左边是Sublime默认的快捷键,不可更改,右边为用户自定义的快捷键,你可以将符合自己习惯的快捷键添加到用户一侧。

下面是一些常用的快捷键:

快捷键 功能
tab 缩进或代码补全
shift+tab 取消缩进
f1 隐藏或显示侧边栏(需要侧边栏有打开的项目或文件夹)
f5f7 编译或运行代码
alt+f3 选中所有与光标处单词相同的单词
alt+shift+1 合并分栏
alt+shift+2 分为两栏
ctrl+a 全选
ctrl+c 复制
ctrl+v 粘贴
ctrl+shift+v 粘贴并缩进
ctrl+shift+c 复制当前文件路劲
ctrl+z 撤销编辑
ctrl+shift+z 重做编辑
ctrl+= 放大字体
ctrl+- 缩小字体
ctrl+] 缩进代码
ctrl+[ 取消缩进
ctrl+alt+f 格式化代码,使代码缩进优雅、易读
ctrl+shift+] 折叠选中的代码
ctrl+shift+[ 展开被折叠的代码
ctrl+/ 注释代码
ctrl+shift+/ 注释代码块
ctrl+space 打开代码提示
ctrl+\ 打开或关闭Sublime控制台
ctrl+b 跳到行首
ctrl+e 跳到行尾
ctrl+shift+b 选中到行首
ctrl+shift+e 选中到行尾
ctrl+d 连续选中多个单词
ctrl+k, ctrl+d 跳过当前单词
ctrl+shift+d 原地复制选区
ctrl+shift+k 删除光标所在行
ctrl+l 连续选中一行
ctrl+shift+l 将选区拆分为多行光标
ctrl+f 查找
ctrl+h 查找并替换
ctrl+shift+f 在所给的文件中或文件夹中查找
ctrl+shift+h 在所给的文件中或文件夹中替换
alt+enter 选中所有匹配项
ctrl+alt+enter 替换所有匹配项
ctrl+shift+up 向上交换一行
ctrl+shift+down 向下交换一行
ctrl+alt+up 向上插入多行光标
ctrl+alt+down 向下插入多行光标
ctrl+g 跳转到某行
ctrl+r 跳转到函数
ctrl+; 跳转到符号
ctrl+m 跳转到括号
ctrl+shift+m 逐级选中括号内容
ctrl+o 快速打开文件
ctrl+tab 切换视图(切换至最近使用的文件)
ctrl+shift+tab 切换视图(在打开的文件之间切换)
ctrl+enter 不换行,直接向下增加一行
ctrl+shift+enter 不换行,直接向上增加一行
ctrl+k, ctrl+backspace 向前删除至行首
ctrl+k, ctrl+k 向后删除至行尾
ctrl+w 关闭当前文件
ctrl+shift+t 重新打开最近关闭的文件
ctrl+p 进入文件跳转面板,可快捷打开项目中的文件
ctrl+shift+p 进入命令面板,输入命令之后回车键执行
ctrl+alt+k 查看或编辑快捷键,左侧为Sublime默认的快捷键配置,右侧为自定义的快捷键
ctrl+alt+s 查看或编辑设置,左侧为Sublime默认的设置,右侧为自定义的设置

制作自己的插件

Sublime使用Python作为插件开发语言,如果想要制作自己的插件,请访问官网https://www.sublimetext.com/docs/3/,并阅读位于Sublime根目录下的Python代码sublime_plugin.pysublime.py,请务必不要直接更改这两个文件,否则后果自负。

祝你愉快地开启代码之旅

感谢你的阅读,祝你愉快开启编辑器折腾之旅!