CLion安装经验分享
2019-11-28 / UNIDY

热衷于安利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 pluginsFeatured plugins,直接点Next过去好了。


接下来,就是重中之重:Toolchains的配置。因为它非常重要,所以我也在后面配上了截图,可以对照着看,但一定要先读我写的文字说明!

Environment下方有个下拉菜单,选MinGW

这时,IDE应该会自动帮你找寻MinGW的位置。但自动生成的东西有可能不靠谱,所以你先检查一下,它找的MinGW是不是你刚刚安装的那个。

假如之前安装了Dev-C++,这次就没装MinGW,怎么知道MinGW的位置呢?

找到Dev-C++的安装目录,下面应该有个名叫MinGW64文件夹,这就是你MinGW的位置了。

大部分情况下,这个空里的路径应该以...\MinGW64结尾。

选择好之后,IDE就会自动帮你填完后面的几个空(这时它自动生成的基本上就是靠谱的了)。如果你看到没有小圈圈在转,也没有红色的感叹号,那就代表一切顺利。

假如出现了异常……首先再次确认自己刚刚MinGW的位置有没有填对,是不是你刚刚安装的MinGW。如果还不行,那就参考下面的截图,自己想办法吧……(无奈脸)(或者……利用一下评论区……?虽然我很可能自己也不知道如何解决这些配置时的异常……)

Toolchains配置完成截图参考


基本的配置完成后,需要激活一下。你既然已经有学生账号了,那就可以光明正大地选择JetBrains Account通道进行验证了。

现在,一切准备就绪,你可以开始编程啦。

在这里,建议你先在电脑中选好一个位置,以后就专门用来放CLion的项目。

先试着写一个Hello World吧。

New Project的窗口中,选择C++ ExecutableLocation里面填自己选好的位置(例如D:\CLion_Project\HelloWorld),其中,地址的最后一段是这个项目的名称。

Language standard是语言标准,如果刚刚学习C++不知道选什么就按它默认的来。

Create之后,进入代码界面,它应该会默认提供一个Hello World的代码。先等一会儿,等右下角的进度条完成。

进度条完成后,你有两种方法执行程序。

  1. 右上角有一排绿色的按钮,有锤子(build)、三角(run)、虫子(debug)什么的,点run,稍微过一会儿就能看到运行结果了。
  2. 你的main函数左边应该也会有一个小三角,点击之后选择run同样可以运行。

如果到现在一切顺利,就代表你的CLion已经成功安装并配置,理论上讲以后都可以正常用了。不过,为了拥有更好的编程体验,可以再进行一些个性化的配置。

进阶配置

左上角,找到File,下拉菜单里找到Settings,进行进一步的配置。

代码又细又淡的字体一定让你很讨厌吧!找到Editor,选择Font,把Font字段设置成Consolas

接下来就是Color Scheme,也就是非常快乐的调颜色阶段。(我曾经花了一下午调颜色……)

为什么需要调颜色?

C++是一门拥有过于丰富特性的语言,不同的标志类型和语法特性可以通过不同的颜色清晰地体现出来。而默认的配色方案比较单调,这时就可以充分发挥你DIY的功力了。

而且屏幕上五彩斑斓(但不要调得太花了)的代码本身就会让你赏心悦目呢!

还有,配色不仅仅是上不同的颜色,还可以选择加粗、斜体或者加阴影。所以,可以发挥的空间很大呢。

如果第一次使用,还比较陌生,可以照搬我当前用的配置。详见后文导入配色方案

与C++关系比较大的,应该是GeneralLanguage DefaultsC/C++。调这些就行了。


接下来,我强烈推荐一款插件:TabNine它是一款利用机器学习进行代码补全的插件,可以有效提升编程体验。(当然这里只是推荐,并不是刚需,可以选择不装。在你还不太熟悉CLion时,也可以不急着装。

这个东西介绍见官网,不过其实也不用去看,只要知道它可以有效地对你接下来要输入的代码进行预测,并提供代码补全建议。

在屏幕左上角File->Settings->Plugins->Marketplace,进入插件市场,搜索TabNineInstall即可。

然后回到编程界面,照理应该可以用了。具体而言,敲代码的时候,它会给你提供补全建议。如果它给的第一条建议正好就是你想要的,那就直接按回车。如果是后面的某条建议,那就先按几次下键,然后再回车。

然而……初次使用的时候,需要先写几段代码,相当于训练一下你的TabNine,让它熟悉你的代码风格,所以一开始它不会给你提示(你这时候看到的代码补全其实是CLion预设的)。等用一段时间,你会发现TabNine变得越来越聪明了。

还有一件比较重要的事,就是TabNine的深度学习功能默认只有30天的试用期,需要注册专业版获得永久使用权。专业版目前免费,点击链接(已失效)申请,它会向你的邮箱中发送注册码及配置说明,按照要求做即可。

可惜的是,专业版TabNine现在似乎需要付费了。不管怎么说,还是先把网址丢这儿:网页链接

TabNine有一个缺陷,就是比较占CPU(毕竟自带机器学习)。反正我敲代码比较快的时候会发现排风扇也在呼呼转。

然后可能会有一些小bug(习惯就好)。

如果需要停用/卸载TabNine,屏幕左上角File->Settings->Plugins->TabNine->Disable/Uninstall

额……说是进阶的配置,其实也就这些。不过,应该已经可以很好地提升编程体验了~


导入配色方案

如果需要我自己用的配色方案,首先下载

然后,在SettingsEditorColor Scheme主菜单中,有一个Scheme下拉列表,右边还有一个小齿轮的,点击小齿轮,Import Scheme,把外部配色方案导入IDE,应该就可以了。

当然,导入之后你也可以自己继续进行一定的微调。

那么……配置的部分,其实差不多了。

不过,我个人认为,我这篇博客最不可替代的部分,其实是接下来的技巧与注意事项。我希望它可以帮你更好地适应并使用CLion。


技巧与注意事项

  1. CLion的代码以项目为单位,一个项目中可以有很多很多文件,它们之间可以相互引用。因此,坦诚地说,如果你只是为了完成一些小型程序而使用CLion,确实有点浪费电脑资源。

    在这里,提供两种方案。一个,是如果这段代码只是用于测试,以后再也不会用了,那就把代码清空,不用再建新的项目。另一个,就是如果你还想保留当前的代码,那就把当前文件复制到项目中的另一个地方,当做备份,同样不用建新的项目。(复制粘贴的操作详见第4条。)

  2. 熟练运用组合键Ctrl+Alt+L它可以将你的代码格式化,增强代码可读性。(像我现在已经敲几行就整理一下代码了……简直过于方便……)

  3. 重视一下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)。

    如果你的变量名是汉语拼音甚至是汉语拼音缩写……还是算了吧……请设想一下在别人的代码中看到btwzdjadd等名称时内心的崩溃感……

    当然我不会告诉你最新的语言标准中允许真的用汉字做变量名……(试试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
    #include <iostream>

    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;
    }
  4. 当你的项目中有多个文件需要管理时,屏幕上方的文件路径条(例如HelloWorld>main.cpp)可以比较简便地实现一些功能。点击一个文件夹(例如HelloWorld),你可以查看这个文件夹下的其他文件或子文件夹。右击一个文件夹或文件(例如main.cpp),你可以进行新建文件、复制粘贴文件、重命名文件、删除文件等更多操作。

    我们当然可以直接使用Windows系统的文件资源管理器来复制粘贴重命名,为什么还要用CLion进行这些操作呢?

    设想,当你的项目中有多个相互关联的文件时,手动修改文件名等信息,难以保证其它用到这个文件的代码都在相应的位置得到更正。而使用CLion进行这些操作,IDE会自动找寻其它用到这个文件的位置,并进行调整和修改,这样就保证了项目的安全性。

  5. 左侧的项目文件组织窗口同样可以用于文件管理,并且更加直观全面。不过,平时不常用的时候,可以点击-关掉。如果想把它再开出来,双击屏幕上方的文件路径条即可。

  6. 屏幕最左下角的那个按钮可以显示拓展功能框。比如说,如果一不小心把输出窗口关掉了,想再开出来,鼠标悬停在上面,点Run(前提当然是你得要先run过一遍当前的代码。)[进阶内容]或者说有时想用到Windows系统的cmd,同样的方法,点Terminal。(如果想要定向到生成的.exe文件所在的目录,需要使用指令cd cmake-build-debug。参见下面的第7条。自行学习DOS命令有关内容。)

  7. 如果程序中想用EOF来判断输入终止,但调试时在CLion的Run窗口中使用Ctrl+Z等没有效果,这时进行这一波操作:Ctrl+Shift+A,输入registry,进入Registry..(不是Register,把run.processes.with.pty后面的勾去掉。调试的时候,按下Ctrl+D,即可实现输入的终止。

    注意:这波操作可能会有副作用!

    不得不承认,这确实是CLion的一个比较讨厌的bug,据说也一直有人向JetBrains反馈这个bug,不过不清楚什么时候会改过来。(或许你看到这篇博文时,这个bug已经解决了……?)

  8. 如果想要使用Windows系统自带的黑框运行程序,或者是想找到项目生成的.exe文件,在哪找呢?在文件资源管理器中找到你这个项目代码的位置,接着找到cmake-build-debug文件夹,里面就能找到那个.exe文件了。

    还有一种“偏门左道”是,在代码中没有加入任何断点的情况下,点击Debug,它就会跳出黑框了。不过黑框中输出的信息不会保存下来。化解这一问题的办法是在代码结束之前加入system("pause")

  9. 还有一些有时比较实用的功能,比如代码比较,上方菜单栏View->Compare With...,后面应该不用多说了。此外,在代码比较对话框中进行的修改可以直接反映到原文件上。当然,有时也可以先Ctrl+Alt+L格式化一下再比较。

  10. (未完待续……)

后记

JetBrains家的产品好是好,但是也有坏处,就是吃内存。所以有人说

JetBrains:从入门到破产

(因为你可能会为了提升JetBrains产品的使用体验而去买很多很多内存条……反正我还没这么干过)

JetBrains家的产品还有一个更大的坏处,就是一旦用了,就再也不想用其他家的IDE了,所谓

JetBrains:从入门到上瘾

不过,在我看来,JetBrains的IDE最大的坏处,就是一旦你用了它的一款IDE,就会接着安装它的其它语言的IDE。这不,我的电脑里,从IntelliJ IDEACLion,再到PyCharm,以及WebStorm……

有机会再写写JetBrains家别的产品的入坑教程,安利就要安利到底~

本文链接:https://www.unidy.cn/articles/intro-to-clion/