Sublime Text配置
SublimeText配置介绍
- 安装SublimeText
- 配置cpp编译环境
- 快捷键设置
- 基本配置
- 插件管理
- For CompetitiveProgramming
- 一些快捷键
安装SublimeText
- Sublime Text - Text Editing, Done Right
- 进入官网安装,自己选择一个路径安装即可
配置自己的cpp编译环境
-
首先本地要有cpp的编译器,这篇博客教学了怎么安装编译器
-
sublime通过sublime-build文件自定义如何编译运行C/C++。在
Tools->Build System->New Build System
中新建编译文件 -
先
Ctrl+S
保存为CPP.sublime-build
名字可以自己定义不改后缀名就行。 -
把文件里面本来就有的全部删光,换成这些:
-
{ // build only "shell_cmd": "g++ -std=c++20 -g ${file} -o ${file_path}/../bin/${file_base_name}", // check the file name using regex "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", // set the encoding to utf-8 "encoding": "utf-8", // doesn't matter if I use full path "working_dir": "${file_path}", // only C and Cpp files can use this sublime-build file "selector": "source.c, source.c++", "variants": [ { // 文件读写 // 要求执行命令前存在in这个文件,意思是从in文件读入stdin,stdout输出到out,stdcerr输出到wrong_info "name": "File IO", "shell_cmd": "g++ -std=c++20 ${file_name} -o ${file_path}/${file_base_name} & ${file_path}/${file_base_name} < ${file_path}/in > ${file_path}/out 2> ${file_path}/wrong_info" }, { // build and run in Terminus (sublime plugin) // 要求事先安装这个插件 "name": "Run In Terminus", "target": "terminus_exec", "cancel": "terminus_cancel_build", "shell_cmd": "g++ -std=c++20 ${file} -o ${file_path}/${file_base_name} && cmd /c ${file_path}/${file_base_name}" }, { // build and run in CMD // you can type something in CMD then your progam can get its inputs "name": "Run in CMD", "shell_cmd": "g++ -std=c++20 \"${file}\" -o \"${file_path}/${file_base_name}\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause \"" } ] }
-
现在我们打开一个cpp文件按下
Ctrl+Shift+B
就能选择运行代码的方式了,我们选择自己配置的Run in CMD
这会打开一个cmd窗口来进行交互,sublime自带的终端是不支持输入的。 -
我们来讲讲这里提到的三种运行方式
-
Run in CMD:执行这个命令会打开一个cmd窗口,通过cmd来完成输入输出
-
Run In Terminus:sublime自带的终端是不支持输入的,所以我们可以安装这个插件来模拟一个终端,换句话说,现在我们可以直接在下面的黑框中完成输入输出,至于安装插件的方式,请先看下文的插件管理
-
File IO:文件读写,要求先有in文件,如果要采用这种交互方式,下面给出一种使用方式,仅作为参考
-
我们来看File IO中的这条命令
"shell_cmd": "g++ -std=c++20 ${file_name} -o ${file_path}/${file_base_name} & ${file_path}/${file_base_name} < ${file_path}/in > ${file_path}/out 2> ${file_path}/wrong_info"
-
我们看一下这个命令就知道我们每次都需要在我们当前编译的这个文件的所在目录下创建一个in文件,这是非常不方便的,并且后面两个文件我们每次也要单独打开来查看,所以我们可以采用固定in,out和wrong_info(如果不需要查看stderr信息,当然也可以不要wrong_info)文件的方式来方便操作,举个栗子,我们可以选择在我们常用的代码编辑区的目录中放入in,out,wrong_info三个文件,然后我们将这三个文件在上面代码中的路径改成绝对路径
"shell_cmd": "g++ -std=c++20 ${file_name} -o ${file_path}/${file_base_name} & ${file_path}/${file_base_name} < C:/Users/Fighoh/file/code/c/in > C:/Users/Fighoh/file/code/c/out 2> C:/Users/Fighoh/file/code/c/wrong_info" // 更改后的命令
-
!!!注意一定要改成自己这三个文件所在的路径!!!
-
为了方便查看,我们设置sublime的layout为4,最大列数为2,点击
View-> Layout
设置成columns: 4
,在点击View-> Groups
设置Max columns:2
,然后我们在右侧三个窗口分别打开in, out, wrong_info,然后就可以在in中填写输入,运行时选择FILE IO,下面就是最终效果了
-
-
-
快捷键设置
点击Preferneces->KeyBindings
打开快捷键设置界面,注意sublime所有的配置都是在右侧进行修改,其实可以当成一种原配置重载或者添加
现在来配置一下刚才配置的cpp环境的运行快捷键
[
{
"keys":["f5"],
"command":"build","args":{"variant":"Run in CMD"} //改成自己想要用的运行方式,也可以类似的多设置几个快捷键
},
{
"keys":["f6"],
"command":"cancel build" //当出现死循环可以按这个键停止运行
},
]
基本配置
点击Preferneces->Settings
,打开设置面板
添加以下配置代码,请自行阅读考虑是否需要,其中的字体请自行下载一个nerdfont,具体参考这篇博客
{
"ignored_packages": [
"Vintage",
],
"close_windows_when_empty": false,
"relative_line_numbers": true, // 相对行号,可以选择关闭
"font_face": "jetbrainsmono nf medium", // 选择自己本地安装的字体,也可以在Preference里面用GUI界面设置字体
"font_size": 13,
"font_options": [
"no_italic"
], // 根据个人情况考虑是否需要斜体
// 设置tab的大小为4
"tab_size": 4,
// 使用空格代替 Tab
"translate_tabs_to_spaces": true,
//失去光标自动保存
"save_on_focus_lost": true,
// 显示空白字符
// "draw_white_space": "all",
// 保存时自动去除行末空白
"trim_trailing_white_space_on_save": "all",
// 保存时自动增加文件末尾换行
"ensure_newline_at_eof_on_save": true,
// 默认编码格式
"default_encoding": "UTF-8",
// 检查更新
"update_check": true,
// 把光标的样式从闪烁变成淡入淡出
// 其余的选项还有"smooth", "phase", "blink", "wide", "solid".
"caret_style": "smooth",
// 高亮当前行
"highlight_line": true,
// 增加行间距
"line_padding_bottom": 1,
"line_padding_top": 1,
// 一直显示代码折叠箭头
"fade_fold_buttons": true,
// 排除这些文件夹,搜索和侧边栏都不会显示
"folder_exclude_patterns": [
"*.dSYM",
"*.exe",
".DS_Store",
".clang-tidy",
],
}
插件管理
-
Sublime本身是一个编辑器,但是插件的存在让其功能变得具有多样性
我们第一步要安装sublime的插件管理工具PackageControl
安装完成后我们按下Ctrl+Shift+P
即可打开sublime的命令面板,输入pc它就会匹配PackageControl的命令
我们可以先安装自己的第一个汉化插件(本文都是后续未安装的,有需求自己安装就好,选中然后Enter就能安装)
-
插件List
-
ChineseLocalizations (汉化功能)
-
Catppuccin color schemes
-
Material Theme
-
注意,在我的配置中,此插件和上一个插件共同完成了主题配置,大家也可以自行发挥,下面给出我的配置和效果(两个插件都安装完之后,在Preferneces->Settings中加入下方代码即可)
"color_scheme": "Catppuccin Macchiato.sublime-color-scheme", "theme": "Material-Theme-Palenight.sublime-theme", // /*material 配置*/ "material_theme_accent_graphite": true, "material_theme_accent_titlebar": true, "material_theme_panel_separator": true, "material_theme_small_statusbar": true, "material_theme_big_fileicons": true, "material_theme_bullet_tree_indicator": true, "material_theme_compact_sidebar": true, "material_theme_bold_tab": true, "material_theme_tabs_autowidth": true, "index_files": false,
-
-
Compare Side-By-Side (文件对比插件,选择有很多,可以自己找找)
-
ConvertToUTF8(编码转换插件)
-
LSP(可以先看一下官方文档了解一下LSP)
-
sublime中LSP的使用需要分别下载LSP客户端和对应语言的语言服务器,这个就是客户端
-
LSP也可进行配置(下面是个例子,也可以跳过)
-
到上方菜单栏找到Preferences->Package Settings->LSP->Settings
-
{ "show_diagnostics_severity_level": 1, //用于修改代码提示等级,安装lsp-json后,将鼠标悬浮在字段上就能看到提示 "show_code_actions": "bulb", "diagnostics_panel_include_severity_level": 1, }
-
-
-
LSP-json(安装这个服务器,配置sublime会方便很多,很多选项只要鼠标悬浮就能看到有哪些选择有什么功能)
-
LSP-clangd
-
安装cpp的语言服务器,它会提示自动寻找clangd文件,没找到的话会询问是否需要自动安装,点击确定自动安装即可,当然也可以选择手动安装
-
此时我们虽然已经有了代码补全等功能,但可能会出现如下问题,以及头文件引用的问题
-
在你的项目目录下创建一个名为
.clangd
的文本文件(如果已经存在则跳过此步骤)。 -
在
.clangd
中添加以下内容:
CompileFlags: Add: - --target=x86_64-w64-windows-gnu - "-std=c++20"
- 这行代码告诉编译器使用C++20标准进行编译,现在就不会有这个问题了
-
-
Terminus(安装终端,实现Run In Terminus功能)
-
打开命令面板(
Ctrl+Shift+P
)输入terminus
可以设置terminus主题
-
-
Package Control (已安装)
-
-
到目前位置其实sublime的功能已经比较全面了,做一些简单的代码编辑是绰绰有余的,而且启动速度极快,内存占用极少,其实整个配置的过程也十分方便,如果理解的话十分钟以内是足够搭建环境的,下面,对于算法竞赛选手会给出配置完成自动爬取常用网站的测试样例并且自动测试
For Competitive Programming
-
安装插件CppFastOlympicCoding
-
ctrl + alt + b
编译运行代码 andctrl + enter
添加测试用例. -
更改配置
-
打开
Tools → FastOlympicCoding → settings
,将以下代码复制进去 -
{ "lint_enabled": false, "cpp_complete_enabled": false, // "close_sidebar": false, // "stress_time_limit_seconds": 3, "tests_file_suffix": "__tests", "run_settings": [ { "name": "C++", "extensions": [ "cpp" ], "compile_cmd": "g++ \"{source_file}\" -std=c++20 -o \"{file_name}\"", "run_cmd": "\"{source_file_dir}\\{file_name}\"", }, { "name": "Python", "extensions": [ "py" ], "compile_cmd": null, "run_cmd": "python \"{source_file}\"" }, { "name": "Java", "extensions": [ "java" ], "compile_cmd": "javac -J-Dfile.encoding=utf8 -d \"{source_file_dir}\" \"{source_file}\"", "run_cmd": "java -classpath \"{source_file_dir}\" \"{file_name}\"" } ] }
-
-
更改快捷方式
-
更改一个插件的快捷方式,我们首先得知道它的命令是什么,向我们之前修改的快捷方式,都是由一个快捷键和一个command字段组成的,所以我们得知道它是怎么定义的
-
官方文档,要学会自己看文档,当然这里是教程所以我们举个例子
-
我们看到它的文件里有一个
Default (Windows).sublime-keymap
文件,应该看得懂这就是windows环境下的快捷键文件,然后打开就能看到他给出的快捷方式了 -
如果打不开网页的话也不要紧,因为这个插件都已经下载了,所以这些文件本地也肯定是有的。
-
可以点击这个打开文件夹
Preferences → Browse Packages... → CppFastOlympicCoding
-
也可以直接找,位置是在
C:\Users\{你的UserName}\AppData\Roaming\Sublime Text\Packages\CppFastOlympicCoding
,注意AppData
默认是隐藏文件夹,可以通过在上方地址栏直接输入地址的形式寻找,或者去搜一下怎么显示隐藏的文件夹 -
现在我们要修改快捷键只需要复制我们想要修改的快捷键对应的模块,打开
Preferneces->KeyBindings
,在右侧添加我们要粘贴我们刚才复制的的快捷方式即可,然后将快捷键改成我们想要的就行,举个栗子 -
直接改一下"keys"即可
-
-
- 我们点击上面这个连接,克隆这个仓库
FastOlympicCodingHook
到packages
文件夹,方式就用我们上面提到的,点击这个即可``Preferences → Browse Packages... → CppFastOlympicCoding`,可以选择直接git clone,也可以下载zip解压到那个文件夹下,并且重命名为FastOlympicCodingHook - 现在package文件夹应该是至少有这三个文件夹的
- 我们点击上面这个连接,克隆这个仓库
-
浏览器安装Competitive Companion
-
到这里位置我们就完成了配置,现在已经可以实现爬取测试用例了,我们重新打开sublime
-
在打开Codeforces,随便找个题目,本地先创建cpp文件,右键空白处会有一个Listen按钮,点击,然后在刚才打开的题目页面,点击competitive companion插件,过一会儿他就会成功爬取样例
-
会有这样的文件出现
-
我们在
ctrl+alt+B
用fastOlympic来运行代码,就会发现他的测试用例已经在里面了,并且能够帮你检测你的用例是否正确
到这里为止我们Sublime的配置就基本完成了,有问题欢迎提出
一些快捷键
Sublime Text相关选择快捷键
Ctrl+D选中光标所占的文本,继续操作则会选中下一个相同的文本。
Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。例如:快速选中并更改所有相同的变量名、函数名等。
Ctrl+L 选中整行,继续操作则继续选择下一行,效果和 Shift+↓ 效果一样。
Ctrl+Shift+L 先选中多行,再按下快捷键,会在每行行尾插入光标,即可同时编辑这些行。
Ctrl+Shift+M 选择括号内的内容(继续选择父括号)。例如:快速选中删除函数中的代码,重写函数体代码或重写括号内里的内容。
Ctrl+M 光标移动至括号内结束或开始的位置。
Ctrl+Enter 在下一行插入新行。例如:即使光标不在行尾,也能快速向下插入一行。
Ctrl+Shift+Enter 在上一行插入新行。例如:即使光标不在行首,也能快速向上插入一行。
Ctrl+Shift+[选中代码,按下快捷键,折叠代码。
Ctrl+Shift+]选中代码,按下快捷键,展开代码。
Ctrl+K+0展开所有折叠代码。
Ctrl+←向左单位性地移动光标,快速移动光标。
Ctrl+→向右单位性地移动光标,快速移动光标。
shift+↑向上选中多行。
shift+↓向下选中多行。
Shift+←向左选中文本。
Shift+→向右选中文本。
Ctrl+Shift+←向左单位性地选中文本。
Ctrl+Shift+→向右单位性地选中文本。
Ctrl+Shift+↑将光标所在行和上一行代码互换(将光标所在行插入到上一行之前)。
Ctrl+Shift+↓将光标所在行和下一行代码互换(将光标所在行插入到下一行之后)。
Ctrl+Alt+↑向上添加多行光标,可同时编辑多行。
Ctrl+Alt+↓向下添加多行光标,可同时编辑多行。
Sublime Text编辑类快捷键
Ctrl+J合并选中的多行代码为一行。例如:将多行格式的CSS属性合并为一行。
Ctrl+Shift+D复制光标所在整行,插入到下一行。
Tab 向右缩进。
Shift+Tab向左缩进。
Ctrl+K+K从光标处开始删除代码至行尾。
Ctrl+Shift+K删除整行。
Ctrl+/注释单行。
Ctrl+Shift+/注释多行。
Ctrl+K+U转换大写。
Ctrl+K+L转换小写。
Ctrl+Z撤销。
Ctrl+Y恢复撤销。
Ctrl+U软撤销,感觉
Ctrl+F2设置书签
Ctrl+T左右字母互换。
F6 单词检测拼写。
Sublime Text搜索类快捷键
Ctrl+F打开底部搜索框,查找关键字。
Ctrl+shift+F在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找,略高端,未研究。
Ctrl+P打开搜索框。例如:1、输入当前项目中的文件名,快速搜索文件,2、输入@和关键字,查找文件中函数名,3、输入:和数字,跳转到文件中该行代码,4、输入#和关键字,查找变量名。
Ctrl+G打开搜索框,自动带:,输入数字跳转到该行代码。例如:在页面代码比较长的文件中快速定位。
Ctrl+R打开搜索框,自动带@,输入关键字,查找文件中的函数名。例如:在函数较多的页面快速查找某个函数。
Ctrl+:打开搜索框,自动带#,输入关键字,查找文件中的变量名、属性名等。
Ctrl+Shift+P打开命令框。场景栗子:打开命名框,输入关键字,调用sublime text或插件的功能,例如使用package安装插件。
Esc退出光标多行选择,退出搜索框,命令框等。
Sublime Text显示类快捷键
Ctrl+Tab按文件浏览过的顺序,切换当前窗口的标签页。
Ctrl+PageDown向左切换当前窗口的标签页。
Ctrl+PageUp向右切换当前窗口的标签页。
Alt+Shift+1窗口分屏,恢复默认1屏(非小键盘的数字)。
Alt+Shift+2左右分屏-2列
Alt+Shift+3左右分屏-3列
Alt+Shift+4左右分屏-4列
Alt+Shift+5等分4屏
Alt+Shift+8垂直分屏-2屏
Alt+Shift+9垂直分屏-3屏
Ctrl+K+B开启/关闭侧边栏。
F11全屏模式
Shift+F11免打扰模式
Sublime Text常用快捷键
Ctrl+Shift+P: 打开命令面板
Ctrl+P:搜索项目中的文件
Ctrl+G:跳转到第几行
Ctrl+W:关闭当前打开文件
Ctrl+Shift+W:关闭所有打开文件
Ctrl+Shift+V:粘贴并格式化
Ctrl+D:选择单词,重复可增加选择下一个相同的单词
Ctrl+L:选择行,重复可依次增加选择下一行
Ctrl+Shift+L:选择多行
Ctrl+Shift+Enter:在当前行前插入新行
Ctrl+X:删除当前行
Ctrl+M:跳转到对应括号
Ctrl+U:软撤销,撤销光标位置
Ctrl+J:选择标签内容
Ctrl+F:查找内容
Ctrl+Shift+F:查找并替换
Ctrl+H:替换
Ctrl+R:前往 method
Ctrl+N:新建窗口
Ctrl+K+B:开关侧栏
Ctrl+Shift+M:选中当前括号内容,重复可选着括号本身
Ctrl+F2:设置/删除标记
Ctrl+/:注释当前行
Ctrl+Shift+/:当前位置插入注释
Ctrl+Alt+/:块注释,并Focus到首行,写注释说明用的
Ctrl+Shift+A:选择当前标签前后,修改标签用的
F11:全屏
Shift+F11:全屏免打扰模式,只编辑当前文件
Alt+F3:选择所有相同的词
Alt+.:闭合标签
-Alt+Shift+(数字):分屏显示
Alt+数字:切换打开第N个文件
Shift+右键拖动:光标多不,用来更改或插入列内容鼠标的前进后退键可切换Tab文件
按Ctrl,依次点击或选取,可需要编辑的多个位置