热衷于安利JetBrains家的产品……
作为我的博客的第一篇正经文章,我打算安利一下CLion。毕竟……谁叫它是全宇宙第一的IDE呢!(引战言论)
有一款超棒的IDE是什么体验?相信我,CLion能让你从入门到上瘾……
一起来改进这份教程~
由于本文主要凭借记忆,写作前未经过实际验证,再加上互联网产品更新快,因此文中所描述的内容可能与实际情形不符。若有这种情况发生,请尽管在评论区中指出。如果你能够提供一些安装过程中的截图,那我也更加欢迎。
注:本文适用于Windows用户,对于Mac和Linux用户情形可能会有或大或小的差异。
准备工作
如果你的电脑上还没有MinGW,需要下载MinGW安装包。并且,安装的时候留个心,记一下自己把MinGW安装到什么位置了(后面配置会用到)。
然而,从MinGW官方下载地址安装MinGW过于魔鬼(我的个人体验如此),所以推荐“曲线救国”——先安装Dev-C++(假如你没装过的话),它会顺带安装好MinGW,具体的位置应该在Dev-C++的安装目录下。
如何简易判断电脑上有没有MinGW?
打开cmd,输入命令
gcc -v
,如果可以打印出版本信息,就表示已有MinGW。
下面安装CLion。
CLion是一款收费产品,不过对学生免费——只要你有自己的学校邮箱。所以,首先你要申请一个学生账号。
然后,下载CLion安装包。(如果你有Toolbox,可以直接用Toolbox安装。)
安装完成后,运行CLion,然后就是激动人心的配置部分啦!
配置
配置有多重要?一方面,如果不能正确配置,那你的CLion可能连用都用不了。另一方面,良好的配置可以大大提升你的使用体验。
正确配置
启动CLion后,作为新用户,你估计会遇到一个Customize CLion
的界面。
首先是UI Themes
,就是界面颜色风格,这个挑自己喜欢的风格(好像黑色的比较受欢迎)。(不过后面会教你自定义一套自己喜欢的风格。)
然后是Default plugins
和Featured plugins
,直接点Next
过去好了。
接下来,就是重中之重:Toolchains
的配置。因为它非常重要,所以我也在后面配上了截图,可以对照着看,但一定要先读我写的文字说明!
Environment
下方有个下拉菜单,选MinGW
。
这时,IDE应该会自动帮你找寻MinGW的位置。但自动生成的东西有可能不靠谱,所以你先检查一下,它找的MinGW是不是你刚刚安装的那个。
假如之前安装了Dev-C++,这次就没装MinGW,怎么知道MinGW的位置呢?
找到Dev-C++的安装目录,下面应该有个名叫MinGW64文件夹,这就是你MinGW的位置了。
大部分情况下,这个空里的路径应该以...\MinGW64
结尾。
选择好之后,IDE就会自动帮你填完后面的几个空(这时它自动生成的基本上就是靠谱的了)。如果你看到没有小圈圈在转,也没有红色的感叹号,那就代表一切顺利。
假如出现了异常……首先再次确认自己刚刚MinGW的位置有没有填对,是不是你刚刚安装的MinGW。如果还不行,那就参考下面的截图,自己想办法吧……(无奈脸)(或者……利用一下评论区……?虽然我很可能自己也不知道如何解决这些配置时的异常……)
基本的配置完成后,需要激活一下。你既然已经有学生账号了,那就可以光明正大地选择JetBrains Account
通道进行验证了。
现在,一切准备就绪,你可以开始编程啦。
在这里,建议你先在电脑中选好一个位置,以后就专门用来放CLion的项目。
先试着写一个Hello World吧。
在New Project
的窗口中,选择C++ Executable
,Location
里面填自己选好的位置(例如D:\CLion_Project\HelloWorld
),其中,地址的最后一段是这个项目的名称。
Language standard
是语言标准,如果刚刚学习C++不知道选什么就按它默认的来。
Create
之后,进入代码界面,它应该会默认提供一个Hello World的代码。先等一会儿,等右下角的进度条完成。
进度条完成后,你有两种方法执行程序。
- 右上角有一排绿色的按钮,有锤子(
build
)、三角(run
)、虫子(debug
)什么的,点run
,稍微过一会儿就能看到运行结果了。 - 你的
main
函数左边应该也会有一个小三角,点击之后选择run
同样可以运行。
如果到现在一切顺利,就代表你的CLion已经成功安装并配置,理论上讲以后都可以正常用了。不过,为了拥有更好的编程体验,可以再进行一些个性化的配置。
进阶配置
左上角,找到File
,下拉菜单里找到Settings
,进行进一步的配置。
代码又细又淡的字体一定让你很讨厌吧!找到Editor
,选择Font
,把Font
字段设置成Consolas
。
接下来就是Color Scheme
,也就是非常快乐的调颜色阶段。(我曾经花了一下午调颜色……)
为什么需要调颜色?
C++是一门拥有
过于丰富特性的语言,不同的标志类型和语法特性可以通过不同的颜色清晰地体现出来。而默认的配色方案比较单调,这时就可以充分发挥你DIY的功力了。而且屏幕上五彩斑斓(但不要调得太花了)的代码本身就会让你赏心悦目呢!
还有,配色不仅仅是上不同的颜色,还可以选择加粗、斜体或者加阴影。所以,可以发挥的空间很大呢。
如果第一次使用,还比较陌生,可以照搬我当前用的配置。详见后文导入配色方案。
与C++关系比较大的,应该是General
、Language Defaults
和C/C++
。调这些就行了。
接下来,我强烈推荐一款插件:TabNine
。它是一款利用机器学习进行代码补全的插件,可以有效提升编程体验。(当然这里只是推荐,并不是刚需,可以选择不装。在你还不太熟悉CLion时,也可以不急着装。)
这个东西介绍见官网,不过其实也不用去看,只要知道它可以有效地对你接下来要输入的代码进行预测,并提供代码补全建议。
在屏幕左上角File->Settings->Plugins->Marketplace
,进入插件市场,搜索TabNine
,Install
即可。
然后回到编程界面,照理应该可以用了。具体而言,敲代码的时候,它会给你提供补全建议。如果它给的第一条建议正好就是你想要的,那就直接按回车。如果是后面的某条建议,那就先按几次下键,然后再回车。
然而……初次使用的时候,需要先写几段代码,相当于训练一下你的TabNine,让它熟悉你的代码风格,所以一开始它不会给你提示(你这时候看到的代码补全其实是CLion预设的)。等用一段时间,你会发现TabNine变得越来越聪明了。
还有一件比较重要的事,就是TabNine的深度学习功能默认只有30天的试用期,需要注册专业版获得永久使用权。专业版目前免费,点击链接(已失效)申请,它会向你的邮箱中发送注册码及配置说明,按照要求做即可。
可惜的是,专业版TabNine现在似乎需要付费了。不管怎么说,还是先把网址丢这儿:网页链接
TabNine有一个缺陷,就是比较占CPU(毕竟自带机器学习)。反正我敲代码比较快的时候会发现排风扇也在呼呼转。
然后可能会有一些小bug(习惯就好)。
如果需要停用/卸载TabNine,屏幕左上角File->Settings->Plugins->TabNine->Disable/Uninstall
。
额……说是进阶的配置,其实也就这些。不过,应该已经可以很好地提升编程体验了~
导入配色方案
如果需要我自己用的配色方案,首先下载。
然后,在Settings
的Editor
下Color Scheme
主菜单中,有一个Scheme
下拉列表,右边还有一个小齿轮的,点击小齿轮,Import Scheme
,把外部配色方案导入IDE,应该就可以了。
当然,导入之后你也可以自己继续进行一定的微调。
那么……配置的部分,其实差不多了。
不过,我个人认为,我这篇博客最不可替代的部分,其实是接下来的技巧与注意事项。我希望它可以帮你更好地适应并使用CLion。
技巧与注意事项
CLion的代码以项目为单位,一个项目中可以有很多很多文件,它们之间可以相互引用。因此,坦诚地说,如果你只是为了完成一些小型程序而使用CLion,确实有点浪费电脑资源。
在这里,提供两种方案。一个,是如果这段代码只是用于测试,以后再也不会用了,那就把代码清空,不用再建新的项目。另一个,就是如果你还想保留当前的代码,那就把当前文件复制到项目中的另一个地方,当做备份,同样不用建新的项目。(复制粘贴的操作详见第4条。)
熟练运用组合键
Ctrl+Alt+L
。它可以将你的代码格式化,增强代码可读性。(像我现在已经敲几行就整理一下代码了……简直过于方便……)重视一下IDE给出的Warning(s)(虽然绝不以消除所有Warning(s)为目标)。CLion给的Warning质量还是普遍比较高的。首先,它会在右侧的滚动条处以黄色表示出来,方便你看看哪里还有需要注意的地方。然后,不同级别和类型的Warning会用不同的方式在代码中呈现出来(有些地方的代码会变成灰色,有些则是下划线或者高亮出来),鼠标悬浮在上方就能看到具体的提示;当光标在Warning处时,使用组合键
Alt+Enter
可以看到一些修改建议(不过这些修改建议不一定管用,往往还是需要人工修改的)。Clang-Tidy
类型的Warning可以选择忽略。Typo
类型的Warning表示拼写错误。虽然拼写错误并不会直接导致程序的错误,但还是尽量避免。如果确实是单词拼错了,把光标放到那个单词处,按下组合键
Alt+Enter
,选择Typo: Rename to...
,然后进行更正。它会把项目中这个所有出现这个变量的地方一起改好。如果这个单词确实存在,只是IDE没有收录,还是
Alt+Enter
,把它保存到project-level dictionary
。如果你的变量名是多个单词的组合,请使用小驼峰命名法(
smallCamelCase
)、大驼峰命名法(BigCamelCase
)、使用下划线分隔的小写字母命名法(lower_case_with_underscores
)、使用下划线分隔的大写字母命名法(UPPER_CASE_WITH_UNDERSCORES
)。如果你的变量名是汉语拼音甚至是汉语拼音缩写……还是算了吧……请设想一下在别人的代码中看到
bt
、wz
、djadd
等名称时内心的崩溃感……当然我不会告诉你最新的语言标准中允许真的用汉字做变量名……(试试int 测试;
)利用好Warning提示可以有效地避免一些低级错误。试着在IDE中粘贴以下代码(不用去运行),看看它给出了哪些Warning(s)。
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
65
66
using namespace std;
int n;
void foo(int n) {
int m;
cin >> m;
cout << n * m << endl;
}
int bar(int x, bool flag) {
if (flag) {
return 0;
} else {
if (x % 2 == 0) {
x = x + 1;
} else {
x = x * 2;
return x;
}
}
}
void culculate(int a, int b) {
cout << a + b << endl;
}
int main() {
foo(5);
cout << bar(4, false) << endl;
int s;
cout << s << endl;
int a[10][10] = {};
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; i++) {
cout << a[i][j] << " ";
}
cout << endl;
}
int k = 8;
while (k > 0) {
//Do something but forget to update the variable `k`
}
int baz[5] = {0, 1, 4, 8, 9};
for (int i = 0; i < 5; i++) {
if (baz[i] = 4)
cout << i << endl;
}
bool flag = false;
if (flag)
cout << "true" << endl;
culculate(1, 2);
return 0;
cout << "The end." << endl;
}当你的项目中有多个文件需要管理时,屏幕上方的文件路径条(例如
HelloWorld>main.cpp
)可以比较简便地实现一些功能。点击一个文件夹(例如HelloWorld
),你可以查看这个文件夹下的其他文件或子文件夹。右击一个文件夹或文件(例如main.cpp
),你可以进行新建文件、复制粘贴文件、重命名文件、删除文件等更多操作。我们当然可以直接使用Windows系统的文件资源管理器来复制粘贴重命名,为什么还要用CLion进行这些操作呢?
设想,当你的项目中有多个相互关联的文件时,手动修改文件名等信息,难以保证其它用到这个文件的代码都在相应的位置得到更正。而使用CLion进行这些操作,IDE会自动找寻其它用到这个文件的位置,并进行调整和修改,这样就保证了项目的安全性。
左侧的项目文件组织窗口同样可以用于文件管理,并且更加直观全面。不过,平时不常用的时候,可以点击
-
关掉。如果想把它再开出来,双击屏幕上方的文件路径条即可。屏幕最左下角的那个按钮可以显示拓展功能框。比如说,如果一不小心把输出窗口关掉了,想再开出来,鼠标悬停在上面,点
Run
。(前提当然是你得要先run过一遍当前的代码。)[进阶内容]或者说有时想用到Windows
系统的cmd
,同样的方法,点Terminal
。(如果想要定向到生成的.exe
文件所在的目录,需要使用指令cd cmake-build-debug
。参见下面的第7条。自行学习DOS命令有关内容。)如果程序中想用EOF来判断输入终止,但调试时在CLion的
Run
窗口中使用Ctrl+Z
等没有效果,这时进行这一波操作:Ctrl+Shift+A
,输入registry
,进入Registry..
(不是,把Register
)run.processes.with.pty
后面的勾去掉。调试的时候,按下Ctrl+D
,即可实现输入的终止。注意:这波操作可能会有副作用!
不得不承认,这确实是CLion的一个比较讨厌的bug,据说也一直有人向JetBrains反馈这个bug,不过不清楚什么时候会改过来。(或许你看到这篇博文时,这个bug已经解决了……?)
如果想要使用Windows系统自带的黑框运行程序,或者是想找到项目生成的
.exe
文件,在哪找呢?在文件资源管理器中找到你这个项目代码的位置,接着找到cmake-build-debug
文件夹,里面就能找到那个.exe
文件了。还有一种“偏门左道”是,在代码中没有加入任何断点的情况下,点击
Debug
,它就会跳出黑框了。不过黑框中输出的信息不会保存下来。化解这一问题的办法是在代码结束之前加入system("pause")
。还有一些有时比较实用的功能,比如代码比较,上方菜单栏
View->Compare With...
,后面应该不用多说了。此外,在代码比较对话框中进行的修改可以直接反映到原文件上。当然,有时也可以先Ctrl+Alt+L
格式化一下再比较。(未完待续……)
后记
JetBrains家的产品好是好,但是也有坏处,就是吃内存。所以有人说
JetBrains:从入门到破产
(因为你可能会为了提升JetBrains产品的使用体验而去买很多很多内存条……反正我还没这么干过)
JetBrains家的产品还有一个更大的坏处,就是一旦用了,就再也不想用其他家的IDE了,所谓
JetBrains:从入门到上瘾
不过,在我看来,JetBrains的IDE最大的坏处,就是一旦你用了它的一款IDE,就会接着安装它的其它语言的IDE。这不,我的电脑里,从IntelliJ IDEA
到CLion
,再到PyCharm
,以及WebStorm
……
有机会再写写JetBrains家别的产品的入坑教程,安利就要安利到底~
本文链接:https://www.unidy.cn/articles/intro-to-clion/