CLion是一款非常强大的IDE,推荐土豪购买正版
1. Ubuntu系统中编译环境设置
如果有环境变量需要设置,或者需要调用source命令,建议直接把这些命令写在.bashrc文件中,或者把在终端中设置环境变量,然后再在同一终端中打开Clion。
如果在终终中直接打开CLion,再在CLion的子终端中设置变量,结果是无效的。
这是因为CLion是运行在打开clion的那个终端中,CLion的子终端其实是另一个终端。
2. 编译选项设置
File->Setting->Editor->Build, Execution, Deployment->Toolchains
File->Setting->Editor->Build, Execution, Deployment->CMake,设置CMake options,生成路径,Build Options
3. 调试代码
Run->Edit Configurations
如果需要传递参数,就把参数填写在Program arguments后面的框中
4. 在ROS中使用
在ROS中的使用与正常的使用稍有不同
4.1. 编译
在使用CLion编译之前需要先用命令行编译一下,例如用catkin_make或catkin build工具。
如果直接用CLion进行编译,Clion会把devel文件夹放到build文件夹下面。
4.2. 运行
运行你的节点之前要先在任意终端运行roscore命令。
5. 设置代码风格
File->Setting->Editor,选择任何一种语言,点击右上角的Set format即可选择代码风格,然后还可以适当地进行个性化修改。
写好代码后Code->Reformat Code即可自动变成合适的风格
6. 快捷键
快捷键的查询和设置在Settings->Keymap
6.1. 查询快捷键
CTRL+N 查找类
CTRL+SHIFT+N 查找文件
CTRL+SHIFT+ALT+N 查找类中的方法或变量
CIRL+B 找变量的来源
CTRL+ALT+B 找所有的子类
CTRL+SHIFT+B 找变量的类
CTRL+G 定位行
CTRL+F 在当前窗口查找文本
CTRL+SHIFT+F 在指定窗口查找文本
CTRL+R 在当前窗口替换文本
CTRL+SHIFT+R 在指定窗口替换文本
ALT+SHIFT+C 查找修改的文件
CTRL+E 最近打开的文件
F3 向下查找关键字出现位置
SHIFT+F3 向上一个关键字出现位置
F4 查找变量来源
CTRL+ALT+F7 选中的字符查找工程出现的地方
CTRL+SHIFT+O 弹出显示查找内容
6.2. 自动代码
ALT+ENTER 导入包,自动修正
CTRL+ALT+L 格式化代码
CTRL+ALT+I 自动缩进
CTRL+ALT+O 优化导入的类和包
ALT+INSERT 生成代码(如GET,SET方法,构造函数等)
CTRL+E 或者ALT+SHIFT+C 最近更改的代码
CTRL+SHIFT+SPACE 自动补全代码
CTRL+空格 代码提示
CTRL+ALT+SPACE 类名或接口名提示
CTRL+P 方法参数提示
CTRL+J 自动代码
CTRL+ALT+T 把选中的代码放在 TRY{} IF{} ELSE{} 里
6.3. 复制快捷方式
F5 拷贝文件快捷方式
CTRL+D 复制行
CTRL+X 剪切、删除行
CTRL+SHIFT+V 可以复制多个文本
6.4. 高亮
CTRL+F 选中的文字,高亮显示 上下跳到下一个或者上一个
F2 或SHIFT+F2 高亮错误或警告快速定位
CTRL+SHIFT+F7 高亮显示多个关键字
6.5. 导航类
Ctrl + N 跳转到类
Ctrl + Shift + N 跳转到符号
Alt + Right/Left 跳转到下一个、前一个编辑的选项卡
F12 回到先前的工具窗口
Esc 从工具窗口回到编辑窗口
Shift + Esc 隐藏运行的、最近运行的窗口
Ctrl + Shift + F4 关闭主动运行的选项卡
Ctrl + G 查看当前行号、字符号
Ctrl + E 当前文件弹出
Ctrl+Alt+Left/Right 后退、前进
Ctrl+Shift+Backspace 导航到最近编辑区域
Alt + F1 查找当前文件或标识
Ctrl+B / Ctrl+Click 跳转到声明
Ctrl + Shift + I 查看快速定义
Ctrl + Shift + B 跳转到类型声明
Ctrl + Alt + B 跳转到实现
Alt + Shift + Left 跳回到上一个位置
Ctrl + U 跳转到父方法、父类
Alt + Up/Down 跳转到上一个、下一个方法
Ctrl + ]/[ 跳转到代码块结束、开始
Ctrl + F12 弹出文件结构
Ctrl + H 类型层次结构
Ctrl + Shift + H 方法层次结构
Ctrl + Alt + H 调用层次结构
F2 / Shift + F2 下一条、前一条高亮的错误
F4 / Ctrl + Enter 编辑资源、查看资源
Alt + Home 显示导航条F11书签开关
Ctrl + Shift + F11 书签助记开关
Ctrl + #[0-9] 跳转到标识的书签
Shift + F11 显示书签
6.6. 编辑
CTRL+Z 倒退
CTRL+SHIFT+Z 向前
CTRL+/ 注释//
CTRL+SHIFT+/ 注释/*...*/
6.7. 其他快捷方式
CTRL+ALT+F12 资源管理器打开文件夹
SHIFT+ALT+INSERT 竖编辑模式
CTRL+W 选中代码,连续按会有其他效果
CTRL+B 快速打开光标处的类或方法
ALT+ ←/→ 切换代码视图
CTRL+ALT ←/→ 返回上次编辑的位置
ALT+ ↑/↓ 在方法间快速移动定位
SHIFT+F6 重构-重命名
CTRL+H 显示类结构图
CTRL+Q 显示注释文档
ALT+1 快速打开或隐藏工程面板
CTRL+SHIFT+UP/DOWN 代码向上/下移动。
CTRL+UP/DOWN 光标跳转到第一行或最后一行下
ESC 光标返回编辑框
SHIFT+ESC 光标返回编辑框,关闭无用的窗口
F1 帮助
CTRL+F4 关闭文件
7. 解决卡顿问题
CLion使用过程中可能经常遇到卡顿问题,这是因为CLion占用资源比较大,但系统分配的内存比较少
这时只需设置一下,增加内存即可。
有以下两种方法可以打开配置文件:
方法一:直接编辑设置文件
使用文本查看器打开clion.vmoptions文件
Mac中路径是 /Applications/CLion.app/Contents/bin/clion.vmoptions
Ubuntu中路径是 clion/bin/clion.vmoptions
方法二:通过导航按钮设置
Help->Edit Custom VM Options
两种方法都能见到如下配置文件
-Xss8m
-Xms520m
-Xmx520m
-XX:NewSize=128m
-XX:MaxNewSize=128m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops
-Dfile.encoding=UTF-8
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Xverify:none
-XX:ErrorFile=$USER_HOME/java_error_in_clion_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_clion.hprof
注意第3行-Xmx520m,是用来设置内存的,其格式是-Xmx[分配的内存容量],如果设置成8GB,也就是8192MB,就是-Xmx8192m,就解决了此问题。
重启一下CLion设置才能生效。
8. 远程调试
打开CLion的设置,进入到 Preferences | Build, Execution, Deployment | Deployment
点加号,添加一个远程配置
设置为SFTP协议,设置远程ip、port、pass然后点击Test Connection,确认是否连接成功
切换到Mappings
设置本地的代码根目录Local path
设置远程的代码根目录 Deployment pat
Upload是上传,Download是下载
- 添加一个GDB远程调试的配置 GDB Remote Debug
- 设置远程访问参数(target remote args): tcp:xx.xx.xx.xx:1234
- 设置远程路径和本地路径的映射(Path mappings)
- 远程调试连接成功后,像本地调试一样,可以设置断点,单步跟踪等
- 调试需要本地和远程的代码一致
9. Docker开发
docker上开发与远程开发很像
sudo docker run --privileged -itd -p 9088:22
10. Git工具
CLion可以用来解Git冲突
使用方法是:VCS->Git->Resolve Conflicts
依次选择有冲突的文件,点击Merge后会出现三路合并的界面
11. 同时管理多个工程
有时整套代码是由多个工程构成的,例如一个工程用于生成链接库,另一个工程调用该链接库。
Clion并不能同时管理多个工程,所以只能临时建立一个新的工程用来管理这两个工程
把这些工程放在同一个目录,在这个目录放一个CMakeLists.txt文件,内容如下
cmake_minimum_required(VERSION 3.14)
project(xxx)
add_subdirectory(link_library_1_path)
add_subdirectory(link_library_1_path)
add_subdirectory(executable_file_path)
Clion管理这个新的工程即可
12. 修改输出缓冲出大小
13. 使用问题汇总
13.1. 文件不属于任何工程
现象
This file does not belong to any ...
原因
这是因为修改了CMakeLists.txt文件,但clion并没有根据新的CMakeLists.txt文件去理解Project
解决方法
Tools->CMake->Reload CMake Project