常用软件的使用

本文最后更新于 2025年7月2日 晚上

本文主要分享了常用软件的常用快捷键和使用技巧。

CLion

快捷键

自定义快捷键:设置-按键映射

快捷键 作用
搜索
Shift + Shift 全局搜索;搜索得更全,不光包括文件文本内容,还有文件夹名称,操作等
CTRL+SHIFT+F 搜索整个工程或指定目录 注:连续按两次Esc,搜索框就会消失;专注搜索文件文本内容
CTRL+SHIFT+R 全局搜索+替换
Ctrl+Shift+A 查找(想要进行的)操作
ALT+F1 导航,查找文件所在目录位置
CTRL+F 在当前窗口查找文本
CTRL+R 在当前窗口替换文本
Ctrl+E 最近的文件
Ctrl+Shift+E 最近的位置,支持键盘直接输入模糊搜索。
Alt + 1 打开/关闭项目树
Alt + Shift + 1 在项目树定位打开的文件的位置
Ctrl + Tab 跳转标签页
查看
Ctrl+鼠标左键 前往声明或用法
Ctrl+鼠标右键 高亮当前区域(Rainbow Brackets插件)
Ctrl+P 将文本光标置于方法调用的圆括号之间,按Ctrl+P可以显示有效形参的列表。
Alt+Q 显示上下文信息(在函数内部快速查看函数定义)
文本编辑
Shift+Home/End 选中行中鼠标前面(后面)的全部内容
Alt+M String Manipulation(插件,字符串编辑)
Ctrl+C/X 复制/剪切整行
Ctrl+Y 删除整行
Ctrl+Alt+Enter 在上一行插入空行
Ctrl+D 重复行或选区
Ctrl+Shift+上/下箭头 向上/下移动语句
Ctrl+Shift+U 切换大小写
Shift+Alt+U CamelCase(插件,一键转化变量为驼峰命名或下划线命名)
Ctrl+Shift+J 合并行
代码自动提示和补全 上下方向键选择,Enter插入
光标前/后移动一个整词 Ctrl+<-/->
连续选中 Shift+<-/->
整词选中 Ctrl+Shift+<-/->
移动定位
Ctrl+Shift+N 转到文件
Ctrl+E 最近的文件
CTRL+上/下箭头 代码向上/下滚动(类似鼠标滚动)
ATL+上/下箭头 上一个/下一个变量/函数(方法)
ALT+Shift+←/→; 鼠标侧面的两个前进和后退键 返回/前进上次光标所在的位置
CTRL+HOME/END 光标跳转到第一行或最后一行下
Alt+←/→ 上/下一个标签页
F4 跳转到源文件
Ctrl+G 跳转到行/列
结构 工具栏-导航
Ctrl+F12 文件大纲
Alt+Shift+H/右边栏-层次结构 查看引入/包含文件的文件有哪些
Ctrl+Alt+Shift+2 在资源管理器里打开文件所在的特定上级文件夹
Ctrl+NumPad-/NumPad+ 折叠/展开代码/文件夹
撤回
CTRL+Z 倒退
CTRL+SHIFT+Z 向前
缩进与注释
CTRL+ALT+I 自动缩进
CTRL+/ 注释// 添加或删除注释
CTRL+SHIFT+/ 注释/*...*/
在函数名称上面一行输入/*!(或者////***) 然后回车,即可自动生成注释。
Translation翻译
Ctrl+Shift+Y 光标在单词上或选中单词
Ctrl+Shift+O 打开翻译界面
其他
Ctrl+F4/ESC 关闭当前文件
按住 Alt 点击关闭标签页 关闭其他标签页
Ctrl+D 比较文件差异。按F4跳转到源文件。直接点击<<是在同行直接接受,Ctrl+点击是换行插入。
F7 转到下一个差异
Shift+F6 (批量)重命名

小技巧

查找用法

查找函数被调用的位置:

函数名-右键-查找用法(Alt+Shift+7)。分为读取值(变量被赋值/数组被push/pop的地方)和声明或预声明(变量被用到的地方)。

函数名-右键-转到-声明或用例(Ctrl+B)/Ctrl+鼠标左键点击。

“重命名”重构

您可以轻松重命名类、函数、变量和文件,同时在所有引用中实现自动纠正。为此,将文本光标放在所需符号上,然后按Shift+F6(重构|重命名)。开始输入新名称并在准备好后按 Enter。

用语言结构包围代码块

CLion提供了标准模板,用于将代码片段用各种基于源代码语言的结构包围起来。这包括了if...else条件语句、do...whilefor循环、折叠区域和其他结构。

  1. 选择所需的代码片段。
  2. 从主菜单中选择Code | Surround With,或按Ctrl+Alt+T(与打开终端的全局快捷键冲突,可以改为Ctrl+Alt+W)。
  3. 从列表中选择必要的包围语句。

创建带有补全功能的代码结构

您可以使用语句补全创建代码结构。开始输入方法声明、方法调用或语句,例如 iffor do-whiletry-catchswitch-casereturn。按 Ctrl+Shift+Enter可以将语句补全为语法正确的结构。

代码-生成

代码生成选项。使用此菜单,可以快速生成构造函数/析构函数、 getter/setter、各种运算符和实现/重写函数。

快捷键:Alt+Insert

格式化

参考链接

您可以重新格式化部分代码、整个文件、文件组、目录和模块。您还可以从重新格式化中排除部分代码或某些文件。

重新格式化代码片段:

  1. 在编辑器中,选择要重新格式化的代码片段。如果您不选择代码片段,CLion 将重新格式化整个文件。
  2. (可选)预览:按 Alt+Enter 并单击调整代码样式设置。
  3. 格式化:在主菜单中,转到代码 |重新格式化代码 或 按 Ctrl+Alt+L 。

重新格式化行缩进:

在某些情况下,“设置”对话框中“缩进检测”部分中的“检测并使用现有文件缩进进行编辑”选项 ( Ctrl+Alt+S ) |编辑|代码样式可以覆盖您的设置。在这种情况下,CLion 将显示一条通知。

  1. 在编辑器中,选择必要的代码片段并按 Ctrl+Alt+I 。
  2. 如果需要调整缩进设置,请在“设置”对话框 ( Ctrl+Alt+S ) 中,转到编辑器 | 缩进设置-代码风格,选择您要更改缩进的语言。
  3. 在“制表符和缩进”选项卡上,指定适当的缩进选项,然后单击“确定”。

重新格式化文件:

  1. 在编辑器中打开文件并按 Ctrl+Alt+Shift+L 或在项目工具窗口中右键单击该文件并选择重新格式化代码。
  2. 在打开的“重新格式化文件”对话框中,如果需要,请选择以下重新格式化选项:
    • 优化导入:如果您想要删除未使用的导入、添加缺失的导入或组织导入语句,请选择此选项。
    • 代码清理:选择此选项可运行代码清理检查。
    • 不保留换行符:根据代码样式设置重新格式化换行符。此选项会覆盖重新格式化时保留 |换行符设置。
  3. 单击运行。如果您想查看重新格式化期间对代码所做的确切更改,请使用本地历史记录功能。

在保存时自动格式化代码:设置-工具-保存时的操作:重新格式化代码

书签(快捷跳转)

  • 添加无名行书签:在编辑器中,将光标定位在一行代码上,然后按下 F11 键。或者,右键单击要添加书签的代码行旁边的装订线,然后选择“添加书签”。
  • 添加助记符行书签:在编辑器中,将光标定位在一行代码上,然后按下 Ctrl+F11 键。或者,右键单击要添加书签的代码行旁边的装订线,然后选择“添加助记符书签”。在打开的弹出窗口中,选择一个数字或字母作为此书签的标识符。或。直接按下Ctrl+Shift+Num直接添加。
  • 书签文件和文件夹:在项目工具窗口(Alt+1)中,右键单击要添加书签的项目,然后选择“书签” | “添加书签” (F11) 或 “添加助记符书签” (Ctrl+F11)。要为多个项目添加书签,请在工具窗口中选择它们,右键单击其中一个,然后选择“书签” | “添加书签” (F11)。对于助记符书签,选择一个数字或字母作为此书签的标识符。按 Enter 键或再次单击所选的字母或数字以保存书签。
  • 删除书签。再次按下F11
  • 重命名书签:在装订线上单击书签图标,然后提供新的描述。
  • 书签跳转。按住 Ctrl 键,然后按键盘上的数字助记符。或,按下 Shift+F11 键,或者从主菜单中选择“编辑” | “书签” | “显示行书签”。或,转到下一个或上一个书签:“编辑” | “书签” | “上/下一行书签”。
  • 所有的书签都分组在“书签”工具窗口中的列表中,您可以通过从主菜单选择“视图 | 工具窗口 | 书签”或按下 Alt+2 来打开它。您可以快速添加所有打开的文件的书签,并将这些书签添加到新列表中。

扩展代码选区(鼠标选择的区域)

要展开选区,请按Ctrl+W。每次按 Ctrl+W时,选区将扩展到代码的其他区域。例如,选区从一个方法名称扩展到调用此方法的表达式,然后扩展到整个语句,继而扩展到包含的块,等等。缩减选区:Ctrl+Shift+W。

导入缺失的头文件/函数声明

  • 配置自动导入。您可以在“设置 | 编辑器 | 通用 | 自动导入”中为C/C++和其他语言配置自动导入行为。
  • 对于提示找不到/未定义的变量/函数,选中,按下Alt+Enter
  • 在cpp文件中编写函数定义后,在函数名上按Alt+Enter组合键,然后选择“创建新函数/split function into declaration and definition”。这将在头文件中添加Class声明。
    1. 在CLion中打开源代码文件。
    2. 在代码中编写类的定义,并保存该文件。
    3. 右键单击源代码文件,选择“Refactor(重构)”,然后选择“Extract”。
    4. 在弹出的对话框中选择“Declaration”,然后选择“Extract”。
    5. 在新的头文件中,你可以看到类的声明已经被自动生成了。

从索引中排除

CLion为项目文件建立索引,以启用诸如搜索,导航,代码完成,代码生成和重构之类的功能。但是,您的项目可能包含不需要这些功能的文件,例如日志,二进制文件或导入的库。在这种情况下,为了减少索引时间,可以将文件标记为纯文本 ,将目录标记为排除或库。

临时文件

有时候您可能需要在项目上下文之外创建临时的笔记或者起草一些代码。而不必切换到不同的应用程序,您可以使用临时文件和临时缓冲区。

临时文件和缓冲区与特定项目无关。它们对于任何在特定IDE实例中打开的项目都是可用的。

创建临时文件:

  1. 从主菜单中选择 File | New | Scratch File,或者按下 CtrlAltShiftInsert。另外,可以在项目工具窗口中,右键点击任何区域,然后导航到 New | Scratch File。
  2. 选择临时文件的语言。相同类型的临时文件会自动编号,并添加到项目视图的 Scratches and Consoles 目录中。
  3. 另外,您可以根据当前编辑器中的选中内容创建一个新的临时文件。选择一些文本或代码,按下 Alt+Enter,然后选择 Create new scratch file from selection。CLion将尝试检测选中片段的语言,并使用适当的类型和扩展名。如果它无法检测出选中片段的语言,CLion将使用与原始文件相同的类型和扩展名创建文件。

临时文件和缓冲区的位置:默认情况下,CLion会将临时文件和缓冲区存储在 IDE配置目录 下的 scratches 目录中。它们可以在任何使用此配置目录的IDE和项目中使用。

1
2
3
4
5
6
# Windows:
%APPDATA%\JetBrains\<product><version> # C:\Users\JohnS\AppData\Roaming\JetBrains\CLion2023.2
# macOS
~/Library/Application Support/JetBrains/<product><version> # ~/Library/Application Support/JetBrains/CLion2023.2
# Linux
~/.config/JetBrains/<product><version> # ~/.config/JetBrains/CLion2023.2

将临时文件包含到您的项目中:如果一个临时文件变得足够大,以至于您希望在项目中使用它,可以将它移动到项目结构的所需目录中。

  1. 在编辑器中打开一个临时文件,或者在项目视图中的 Scratches and Consoles | Scratches 目录中选择它,按下 F6,然后选择项目中的目标目录。
  2. 在项目视图的 Scratches and Consoles | Scratches 目录中,将临时文件从源目录拖到项目中的目标目录。
  3. 在项目视图的 Scratches and Consoles | Scratches 目录中选择一个临时文件,按下 Ctrl+X,然后选择项目中的目标目录,按下 Ctrl+V。

其它

  1. 右键标签页-向下拆分/向右拆分:方便看大型内容。

Conda

在没有自行安装其他的conda环境的时候,默认会有一个base环境。

这里的*表示,这个是当前处于激活状态的环境。每次进入conda的时候,默认就是进入了base环境。

库都要安装在小环境中,不要安装在 base 里, 首先要用 conda 激活环境。

查询

1
2
3
4
5
6
7
8
9
conda --help  # 查询 conda 的命令
conda --version # 查看当前 conda 的版本
# 环境管理
# 查看所有的conda环境
conda env list # 或
conda info --envs
# 查看当前环境
conda info -e # 查看当前环境是哪个
conda info # 查看当前环境的完整信息

mamba

除了激活和退出环境仍需要 conda 命令,安转和搜索包都可以使用 mamba 替换 conda,以提高速度。

1
2
# 安装 mamba
conda install mamba -n base -c conda-forge

环境管理

1
2
3
4
5
6
conda create -n cpp_test_env  # 创建环境
# conda create -n cpp_test_env python=3.6
conda activate cpp_test_env # 激活环境,激活成功会出现一个小括号(环境名字,cpp_test_env)
conda deactivate # 退出环境,后面不需要加环境的名字
conda clean (参数) # 清空缓存
conda remove -n env_name --all # 删除环境,有一个参数

Windows:

1
2
3
4
5
6
# conda默认使用了hardlink,如果同时使用conda和pip的情况下,我个人建议加上 --copy 选项
conda create --copy -n envname python=3.9
# 打开新建环境下的lib文件夹的site.py文件(C:\Users\username\.conda\envs\conda_env\Lib\site.py), 找到USER_SITE、USER_BASE那两行, 默认是None, 修改后如下:
USER_SITE = r"C:\Users\username\.conda\envs\conda_env\Lib\site-packages"
USER_BASE = r"C:\Users\username\.conda\envs\conda_env\Scripts"
# 记得加上r抑制转义, 否则有可能因为非法转义报错, 导致进入不了虚拟环境。

可以通过配置auto_activate_base关闭自动进入conda基础环境:

1
conda config --set auto_activate_base false

如要开启,将其设为true就可以了:

1
conda config --set auto_activate_base true

库/包管理

清华源:https://pypi.tuna.tsinghua.edu.cn/simple

阿里源:https://mirrors.aliyun.com/pypi/simple/

腾讯源:http://mirrors.cloud.tencent.com/pypi/simple

豆瓣源:http://pypi.douban.com/simple/

  1. 安装包

    1. 在线安装

      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
      conda search qt  # 搜索可用版本
      # 你可以指定所安装软件包的版本号,如果不指定的话,就默认安装最新版本。
      conda install -y pkgs[==version] # 安装库,安装成功一般会出现三个 done 。-y 参数的作用是自动确认,忽略询问。
      # 通过调用软件的帮助文档来经常是否下载成功。如果失败, 重新下载即可。

      # 或
      # 在anaconda下用pip装包的原因:尽管在anaconda下我们可以很方便的使用conda install来安装我们需要的依赖,但是anaconda本身只提供部分包,远没有pip提供的包多,有时conda无法安装我们需要的包,我们需要用pip将其装到conda环境里。
      conda install pip # 进入环境后
      # 首先用下面命令查看我们此时用的pip为哪个环境
      # 如base环境的pip可能在/root/anaconda3/bin/pip,而其他conda环境的pip,可能在/root/anaconda3/envs/my_env/bin/pip
      which -a pip
      pip -V # pip --version
      # 配置
      pip -v config list
      pip install --upgrade pip setuptools wheel # 升级pip工具包
      pip install --upgrade pip # 更新 pip 至最新版
      pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 永久换源(清华源)
      # Writing to /home/xxx/.config/pip/pip.conf
      # global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
      pip config unset global.index-url # 换回默认源
      # 搜索可用版本
      pip index versions [your python module name] # 或
      pip install package_name==
      pip install pkgs[==version] # pip安装的包,conda list结果中的build项目的Channel为pypi
      pip install -r environment.txt # 根据 txt 文件创建使用 pip 安装的环境
      pip3 --proxy 127.0.0.1:7890 install package_name
      pip install xxxx -i https://pypi.tuna.tsinghua.edu.cn/simple # 临时换源(清华源)
      pip install geometry_msgs --extra-index-url https://rospypi.github.io/simple # 临时添加额外的源
      pip install -e path/ # 执行path/目录下的setup.py文件

      在服务器上执行git命令超时:

      1
      pip install git+https://github.com/eriksandstroem/evaluate_3d_reconstruction_lib.git@9b3cc08be5440db9c375cc21e3bd65bb4a337db7

      可以:

      1. 在本地:

        1
        git clone https://github.com/eriksandstroem/evaluate_3d_reconstruction_lib.git
      2. 打包传给服务器。

      3. 在服务器执行:

        1
        2
        3
        4
        5
        conda activate envname
        cd evaluate_3d_reconstruction_lib
        git checkout 9b3cc08be5440db9c375cc21e3bd65bb4a337db7
        git status
        pip install .
      4. 完成。

    2. 本地安装

      1
      2
      3
      # https://anaconda.org/这个是Anaconda包下载的地方,利用搜索框进行搜索,然后下载。
      conda install --use-local package.tar.bz2 # 安装本地软件包。
      pip install path/package_name.whl
    3. 等等。

  2. 查找包

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 查找软件常用的链接(我们认知的软件名和conda给的名字不一样)
    # https://bioconda.github.io/
    # https://anaconda.org/search
    conda search 软件名 # 查找库

    # 查看环境中所装的包
    conda list # 默认当前环境
    conda list –n cpp_test_env # 查看指定环境
    conda list fast* # 比如很早就安装某个软件,如果只想起四个字母,用通配符的去查找
    pip show packagename
  3. 更新与卸载包

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 更新
    conda update name # 更新库
    pip install --upgrade 包名称==版本号
    pip install package_name== # 会自动卸载旧版本

    # 卸载
    # --force 确保只卸载该库,而不同时卸载该库的其他库
    conda uninstall pytorch --force # 卸载使用 conda 安装的库
    conda remove name # 与上命令等同
    pip uninstall torch # 卸载使用 pip 安装的库

环境移植

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
# 方法一:克隆环境
conda create -n 新环境名 --clone 旧环境名 # 克隆环境

# 方法二:导出环境
conda env export > environment.yml # 导出使用 conda 安装的环境,在当前目录下生成一个名为 enviroment.yml 的文件
conda env create -f environment.yml # 根据 yml 文件创建使用 conda 安装的环境
# 如果创建环境中途遇到了报错,希望继续创建,可以:
conda activate environment_name # 激活已经部分创建的环境
conda env update --file environment.yml --prune # 继续安装剩余的依赖。--prune选项会移除不在environment.yml文件中的包。
# 在用 conda 的时候发现有些module还是未安装,上网找了下原因,原来以上只会导出conda命令直接安装的包,而我的包大多是用pip安装在Anaconda的lib和site-package里了。因此还要用导出pip的方法:
pip freeze > environment.txt # 导出使用 pip 安装的环境,在当前目录下生成一个名为 environment.txt 的文件
pip install -r environment.txt # 根据 txt 文件创建使用 pip 安装的环境

# 方法三:利用conda pack进行环境拷贝
# conda-pack包安装
# 利用conda进行conda-pack包安装
conda install -c conda-forge conda-pack
# 利用pip进行conda-pack包安装
pip install conda-pack

# 环境打包
# 打包环境,生成environment.tar.gz
conda pack -n enviroment
# 打包环境,生成defined_name.tar.gz
conda pack -n my_env -o defined_name.tar.gz
# 打包环境,使生成的environment.tar.gz置于[path]下
conda pack -p [path]

# 环境移植
# 首先要在conda安装目录下的envs文件夹下新建一个文件夹,这个文件夹的名称就是环境的名称,即在[path of conda]/envs/下
# 定位到conda下的envs文件夹下
cd envs
# 新建用于环境的
mkdir enviroment
# 将打包的环境重新恢复
tar -xzf enviromen.tar.gz -C enviroment

报错

在 shell 脚本中执行conda activate时报错:

1
CondaError: Run 'conda init' before 'conda activate'

加上conda init后还是报错。

解决:

确保 conda init 只在第一次运行时执行,并且在脚本中正确激活环境。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/zsh
set -e
# set -x

# 检查 conda 是否已经初始化
if ! grep -q "conda initialize" ~/.zshrc; then
conda init zsh
exec zsh # 重新启动 zsh 以应用更改
fi

# 激活 conda 环境
source ~/.zshrc
conda activate evo

# 你的其他命令

CTEX

  1. 创建通栏:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    \onecolumn
    % 通栏图片/表格
    \begin{multicols}{2}
    % 继续双栏内容
    \end{multicols}
    \onecolumn
    % 通栏图片/表格
    \begin{multicols}{2}
    % 继续双栏内容
    \end{multicols}
  2. 等等。

Git

快捷键

Windows下的Git Bash终端快捷键:

快捷键 作用
Ctrl+insert 复制
Shift+insert 粘贴

GitHub

.github文件夹

.github 文件夹通常包含 GitHub 特定的配置文件和工作流。以下是一些常见的用途:

  • GitHub Actions Workflows: 自动化构建、测试和部署脚本,通常存放在 .github/workflows 目录下。
  • Issue 和 Pull Request 模板: 自定义 issue 和 pull request 的模板,通常存放在 .github/ISSUE_TEMPLATE.github/PULL_REQUEST_TEMPLATE.md 文件中。
  • CODEOWNERS 文件: 指定项目中某些文件或目录的负责人,通常存放在 .github/CODEOWNERS 文件中。
  • FUNDING 文件: 为项目设置资助选项,通常存放在 .github/FUNDING.yml 文件中。
  • 社区健康文件: 包括 CONTRIBUTING.md、CODE_OF_CONDUCT.md 等文件,帮助社区成员了解项目的贡献指南和行为守则。

这些文件和配置帮助项目维护者和贡献者更好地协作和管理项目。

tips

  1. star的原则:

    如果项目完善已停止更新或目前没有使用,就没有star的必要,来“污染”star库。star主要用于及时获取更新消息和收藏常用项目。

    1. 项目仍在持续更新。
    2. 感兴趣(但还没有深入研究)的项目(更推荐收藏在浏览器收藏夹中,还能做备注)。
  2. 默认watch:Participating and @mentions

  3. 根据Tag找存储库的历史版本:

    1
    2
    3
    GIT_REPOSITORY  https://github.com/jbeder/yaml-cpp
    GIT_TAG 11607eb5bf1258641d80f7051e7cf09e317b4746
    https://github.com/jbeder/yaml-cpp/tree/11607eb5bf1258641d80f7051e7cf09e317b4746
  4. 在GitHub上快速找到自己评论过或者发布过的问题:

    1
    2
    3
    4
    5
    6
    # 搜索框
    commenter:username
    is:issue commenter:username
    is:issue involves:username
    is:issue is:open # is:issue is:closed
    # 要查看最近的活动,请从Sort下拉列表中选择Recently updated
  5. GitHub首页只会推荐有最新releasestar项目?如果想跟进项目的commit,可以在Your stars界面筛选Sort by: Recently active

  6. 每日/周/月排行:点击GitHub首页左上角三道杠-Explore-Trending

  7. 搜索:

    1
    2
    java stars:>1000  # 目标语言是java且star数大于1k
    dvs_msgs language:Python # 指定编程语言
  8. 查看GitHub仓库创建时间

    请求api可以得到一个 JSON 格式的信息。其中有个字段为 created_at,即为仓库创建时间。

    1. 在浏览器地址栏输入 上述URL地址,然后在返回结果页面搜索 created_at,可以看到对应的创建时间。

    2. 命令行:

      1
      curl  -k https://api.github.com/repos/tensorflow/hub | grep created_at
    3. 等等。

  9. 等等。

Google Colab

  1. Google上传和解压:

    选中谷歌云端硬盘里的文件,右键-共享-共享-设置访问权限:知道链接的任何人。共享-复制链接:

    1
    2
    3
    4
    5
    6
    # https://drive.google.com/file/d/xxx/view?usp=drive_link
    !gdown --id 'xxx' --output file.zip
    !unzip file.zip -d /content/file
    %cd /content/file
    !pwd
    !ls
  2. 查看硬件信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    print("============查看GPU信息================")
    # 查看GPU信息。注意提前把代码执行程序改为GPU。
    !/opt/bin/nvidia-smi
    print("==============查看pytorch版本==============")
    # 查看pytorch版本
    import torch
    print(torch.__version__)
    print("============查看虚拟机硬盘容量================")
    # 查看虚拟机硬盘容量
    !df -h
    !df -lh
    print("============查看cpu配置================")
    # 查看cpu配置
    !cat /proc/cpuinfo
    print("=============查看内存容量===============")
    # 查看内存容量
    !cat /proc/meminfo
  3. 等等。

Markdown

Markdown文本编辑器推荐:Typora中文站

  1. 将标题等级提升一级:将#[空格]替换为[空格];降低一级:将#[空格]替换为##[空格]

Mermaid

GitHub仓库

官网

中文网

Typora支持图表绘制

流程框图的规则

绘制流程框图(流程图)时,形状的使用有一套特定的规则,这些规则帮助标准化流程描述,并使流程图对于阅读者更加直观易懂。以下是一些基本的形状以及它们在流程图中的应用规则:

  1. 椭圆形或圆形(起止符)
    • 用途:表示流程的开始和结束。
    • 规则:每个流程图通常以一个圆形开始(标有“开始”或特定的启动指示),并以一个圆形结束(标有“结束”或特定的结束指示)。
  2. 矩形(处理步骤)
    • 用途:表示一个具体的操作或指令。
    • 规则:矩形内部应清晰地描述步骤的内容。每个矩形应该包含一个动作动词,明确指示执行的操作。
  3. 菱形(决策符)
    • 用途:表示需要做出决策的点,通常涉及是/否或者多重选择。
    • 规则:菱形中应包含一个简洁的问题或决策点,出口流向应标有可能的答案或选择,如“是”或“否”。
  4. 平行四边形(输入输出符)
    • 用途:表示数据的输入或输出。
    • 规则:必须明确指出数据的输入源或输出去向。例如,用户输入、数据保存等。
  5. 箭头
    • 用途:表示控制流程的方向。
    • 规则:箭头从一个符号指向另一个符号,显示流程的流向。保持箭头清晰,避免过多交叉,以免图表混乱。
  6. 圆角矩形(子程序)
    • 用途:如果流程图中某个操作是复杂的并在其他位置有详细描述,可以使用圆角矩形表示这是一个子过程。
    • 规则:子程序通常有对应独立的流程图说明详细步骤。

流程图的绘制还应遵守一些基本的布局规则,例如:

  • 清晰性:图表应清晰易读,避免过度复杂的连接。
  • 简洁性:只包含完成目标所需的必要步骤,避免冗余。
  • 一致性:使用统一的符号和术语。

在绘制流程图时,使用这些形状按照规则确保你的图表不仅标准化而且功能性强,能够清楚地传达流程信息。

通用语法

流程图的方向定义:

  • TB - 从上到下
  • TD - 自上而下/与自上而下相同
  • BT - 从下到上
  • RL - 右到左
  • LR - 左到右

流程图

简单示例:

flowchart TD
    A[Enter Chart Definition] --> |Text| B(Preview)
    B --- C{decide}
    C -.-> D([Keep])
    C ==> E[Edit Definition]
    E  <--> B
    D --> F[Save Image and Code]
    F --> B
    
    markdown["`This **is** _Markdown_`"]
    newLines["Line1
    Line 2
    Line 3"]
    markdown --> newLines

Microsoft Edge

Microsoft Edge 中的键盘快捷方式

快捷键 作用
窗口
Ctrl+N 新建窗口
Ctrl+Shift+N 新建无痕窗口
标签页
Ctrl+W 关闭当前标签页
Ctrl+Shift+W 关闭所有标签页
Ctrl+Shift+A 查看最近关闭的标签页
Ctrl + Shift + K 复制当前标签页
Ctrl + Tab 切换到下一个标签页
Ctrl + Shift + Tab 切换到上一个标签页
Ctrl + 1, 2, ... 8 切换到特定标签页
Ctrl + 9 切换到最后一个标签页
搜索
Alt + D/Ctrl + L/F4 选择地址栏中的 URL 以进行编辑
Ctrl + Shift + L 粘贴并搜索或粘贴并访问(不一定非得是URL)
Ctrl + E/Ctrl + K 在地址栏中打开搜索查询
Ctrl+Shift+E 在边栏中搜索
其它
F5 重新加载当前标签页
Ctrl+F/F3 查找当前标签页

Okular

快捷键 作用
F6 注释
Ctrl+4 文本选择工具
鼠标双击 打开注释/持续选择工具

TeXstudio

快捷键 作用
F5 编译并预览
F6 编译
Ctrl + F 可对源码或者PDF查看器的内容进行搜索定位
Ctrl + 鼠标单击 定位Latex源码和PDF的对应位置
Ctrl + T 注释选定代码
Ctrl + U 取消选定代码注释

其他配置:

  1. 选项-设置-构建:若写中文论文,则需修改默认编译器为XelaTeX;若为英文,则用PdfLaTex。

Typora

Markdown语法

https://support.typoraio.cn/zh/Markdown-Reference/

语法高亮

  • Shell: console, shell
  • Bash: bash, sh, zsh
  • Powershell: powershell, ps
  • Dos: dos, bat, cmd
  • language: js、javascript、java、python、c、c#、c++
  • html、htmlbars、yaml、xml、json
  • typescript、sql、nginx
1
2
3
4
sudo apt upgrade  # 安装可用的软件包更新
`高亮`
```高亮```
#! 执行

脚注

1
2
3
您可以像这样创建脚注[^footnote].

[^footnote]: Here is the *text* of the **footnote**.

快捷键

快捷键 作用
Ctrl+T 插入表格
Ctrl+Enter 表格插入行/回车跳出代码块
Ctrl+Shift+Backspace 删除行
Ctrl+Shift+L 显示/隐藏边栏
Ctrl+Shift+1 显示/隐藏大纲
Ctrl+/ 源代码模式
Ctrl+K 复制链接,在Typora中选中要建立超链接的文字,按下Ctrl+K,Typora会自动读取剪切板来创建超链接。
Ctrl+Shift+` 生成代码格式,也就是使用````进行包围
Ctrl+Y 重做(与Ctrl+Z撤销相反)
Ctrl+Shift+F 当前目录下的文件全局搜索
Ctrl+L 全选行

小贴士

  1. 有序列表回车后按再按回车:取消缩进,回到行首,取消继续编号;按 TAB,新建下级列表;按Backspace ,取消继续编号,可在保持缩进的情况下输入内容。
  2. 在列表中第一次回车,取消当前列表,第二次回车,创建上级列表(没有上级列表就是正文的回车)。

vim

参考链接

vim键盘图

vi/vim的使用

1
vim runoob.txt  # 开始使用vim编辑文件

基本上 vi/vim 共分为三种模式,命令模式(Command Mode)输入模式(Insert Mode)底线命令行模式(Command-Line Mode)

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。

以下是普通模式常用的几个命令:

  • i:切换到输入模式,在光标当前位置开始输入文本。
  • ::切换到底线命令行模式,以在最底一行输入命令。
  • x:删除当前光标所在处的字符。
  • a:进入插入模式,在光标下一个位置开始输入文本。
  • o:在当前行的下方插入一个新行,并进入插入模式。
  • O:在当前行的上方插入一个新行,并进入插入模式。
  • dd:剪切当前行。
  • yy:复制当前行。
  • p(小写):粘贴剪贴板内容到光标下方。
  • P(大写):粘贴剪贴板内容到光标上方。
  • u:撤销上一次操作。
  • Ctrl + r:重做上一次撤销的操作。

若想要编辑文本,只需要启动 Vim,进入了命令模式,按下 i 切换到输入模式即可。

在其它模式下,可以随时按ESC键回到命令模式

命令模式只有一些最基本的命令,因此仍要依靠底线命令行模式输入更多命令。

输入模式

在命令模式下按下 i 就进入了输入模式,使用 Esc 键可以返回到普通模式。

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合:输入字符
  • ENTER:回车键,换行
  • BACK SPACE:退格键,删除光标前一个字符
  • DEL:删除键,删除光标后一个字符
  • 方向键 ↑↓←→:在文本中移动光标
  • HOME/END:移动光标到行首/行尾
  • Page Up/Page Down:上/下翻页
  • Insert:切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC:退出输入模式,切换回命令模式

底线命令行模式

在命令模式下按下 :(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有:

  • :w:保存文件但不退出。
  • :q:退出 Vim 编辑器。
  • :wq:保存文件并退出 Vim 编辑器。
  • :q!:强制退出Vim编辑器,不保存修改。
  • :w!:若文件属性为【只读】,强制写入该档案
  • :wq!:强制保存后退出。
  • :e!:将档案还原到最原始状态!

ESC 键可随时退出底线命令行模式,切换回命令模式

翻页

  • Ctrl + f:向下翻一页(forward)

  • Ctrl + d:向下翻半页(down)

  • Ctrl + b:向上翻一页(backward)

  • Ctrl + u:向上翻半页(up)

  • gg:跳到文件开头

  • G:跳到文件结尾

  • 数字 + G:跳到指定行(如 15G 跳到第15行)

VSCode

快捷键

官方文档

(当快捷键冲突时,)您可以通过导航到文件 -> 首选项 -> 键盘快捷键(Ctrl+K, Ctrl+S)并在搜索栏中搜索“导航”来更改首选键绑定。

作用 快捷键 自定义
Linux Windows
一般
首选项:打开设置(ui) Ctrl+, Ctrl+Alt+S
控制台终端显示与隐藏 ctrl + ~
显示所有符号 Ctrl + T
全局搜索 Ctrl+Shift+F
查找 Ctrl + F
替换 Ctrl + H
最近打开的项目(文件夹) Ctrl+P
通过文件名查找文件(快速打开最近的文件) Ctrl+E
打开命令面板(通过搜索界面访问 VS Code 中存在的所有可用命令、快捷方式和功能) Ctrl + Shift + P
跳转标签页 Ctrl + Tab
关闭文件 Ctrl+W Ctrl+F4
关闭所有文件 Ctrl + K, W
显示/隐藏侧边栏 Ctrl+B Alt+1
显示/隐藏终端 Ctrl+`
打开文件所在文件夹/文件:在文件资源管理器中显示 Ctrl + Alt + R Shift+Alt+R Alt + F1,when editorFocus
复制文件名(插件 Copy file name Ctrl + Alt + E
移动
向上/向下滚动行 Ctrl+↑ / ↓
快速滚动 滚动时按住 Alt 键可以以 5 倍速度滚动;此外,您还可以使用编辑器:快速滚动灵敏度 ( editor.fastScrollSensitivity ) 设置更改滚动倍数。
快速回到顶部 ctrl + home
快速回到底部 ctrl + end
前进(编辑位置) Ctrl+Shift+- Alt+<- Alt + Shift + ->
后退(编辑位置) Ctrl+Alt+- Alt+-> Alt + Shift + <-
显示上/下一个更改(Git) (Shift+)Alt+F3
转到行/列 Ctrl+G
注释与缩进
单行注释 [ctrl+k,ctrl+c] 或 ctrl+/
取消单行注释 [ctrl+k,ctrl+u] (按下ctrl不放,再按k + u)
多行注释 [alt+shift+A]
行增加缩进 ctrl + [
行减少缩进 ctrl + ]
多行注释 /**
文本编辑
向上/下复制行 Ctrl+Shift+Alt+↑ / ↓ Shift+Alt+↑/↓ Ctrl+D
向上/下移动行 Alt + ↑ / ↓ Ctrl+Shift+↑ / ↓
选择当前行 Ctrl+L
删除整行 Ctrl + Shift + K Ctrl+Y
缩小/扩大选区:收起/展开选择:扩大/缩小选区 Shift+Alt+<-/-> Ctrl+(Shift)+W
代码格式化 当前选择的源代码: Ctrl+K Ctrl+F;整个文档格式:Ctrl+Shift+I 当前选择的源代码: Ctrl+Alt+L
重命名符号 选择一个符号,然后键入 F2
光标前/后移动一个整词 Ctrl+<-/->
连续选中 Shift+<-/->
整词选中 Ctrl+Shift+<-/->
用语言结构包围代码块 (插件:Surround)Ctrl+Shift+T Ctrl+Alt+W
重命名符号/文件(夹) F2
选择特定区域 第一个位置鼠标单击,第二个位置按住Shift再单击
查看
查看和跳转符号 Ctrl+Shift+O
转到工作区中的符号(Latex 标签、章节) Ctrl+T
跳转到函数开头 Ctrl+Shift+O,后直接按Enter
跳转到函数结尾 Ctrl+Shift+O,后按↓,后按Enter
查看用法 Ctrl+Shift+F10
转到定义 选择一个符号,然后键入 F12;Ctrl+单击;Shift+F12,小窗浏览定义
查找所有引用 Alt+Shift+F12 Alt+Shift+7
差异跳转 F7 和 Shift+F7
将文件与剪贴板进行比较 Ctrl+K C
转到括号(在所属最近的成对括号间来回跳转) Ctrl+Shift+\
全屏 F11 Shift+F11
编辑器
打开上一个编辑器 Ctrl+PageUp
打开下一个编辑器 Ctrl+PageDown
打开组中最后一个编辑器 Ctrl+9
书签
书签:插入/删除 Ctrl+Alt+K F11
书签:跳至上一个 Ctrl+Alt+J
书签:跳至下一个 Ctrl+Alt+L Ctrl+Alt+K
书签:将选择展开到上一个 Shift+Alt+J
书签:将选择展开到下一个 Shift+Alt+L
书签:收缩选择 Shift+Alt+K
LaTeX Workshop
使用配方构建 Ctrl+Alt+R
查看 LaTeX PDF 文件 Ctrl+Alt+V
其它
CMake: 运行但不调试 Ctrl+F5
更改颜色主题 Ctrl+K Ctrl+T
聊天,在侧边栏打开聊天 Alt+3

小技巧

新建文件(夹)

  • 鼠标双击左侧“文件夹”空白处,后输入:

    1
    2
    3
    test.py  # 新建文件
    test/ # 新建文件夹
    test/test.py # 新建文件夹内的文件
  • 双击标签栏

  • Ctrl + N 键盘快捷键

  • 命令面板(Ctrl+Shift+P) - Create: New File

  • 单击文件资源管理器窗格中的New File...图标按钮

  • 文件 > 新建文件

用户代码片段/实时模板

左下角设置-用户代码片段

VS Code的代码片段填充功能默认使用的是Tab键,而不是空格键或回车键。并且,这个行为是不能被修改的。当你在一个代码片段中,你可以使用Tab键在不同的位置(被${1}, ${2}等标记的位置)之间跳转。

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
{
// Place your 全局 snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
// Placeholders with the same ids are connected.
// Example:
// "Print to console": {
// "scope": "javascript,typescript",
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
"To //": {
"prefix": "、、",
"body": [
"// "
],
"description": "中文注释符号转英文"
},
"TODO-LLL25655-//": {
"prefix": "// todo",
"body": [
"// TODO-LLL25655: "
],
"description": "TODO-LLL25655"
},
"NOTE-LLL25655-//": {
"prefix": "// note",
"body": [
"// NOTE-LLL25655: "
],
"description": "NOTE-LLL25655"
},
"BUG-LLL25655-//": {
"prefix": "// bug",
"body": [
"// BUG-LLL25655: "
],
"description": "BUG-LLL25655"
},
"DEBUG-LLL25655-//": {
"prefix": "// debug",
"body": [
"// DEBUG-LLL25655: "
],
"description": "DEBUG-LLL25655"
},
"XXX-LLL25655-//": {
"prefix": "// xxx",
"body": [
"// XXX-LLL25655: "
],
"description": "XXX-LLL25655"
},
"UNDO-LLL25655-//": {
"prefix": "// undo",
"body": [
"// UNDO-LLL25655: "
],
"description": "UNDO-LLL25655"
},
"FIXME-LLL25655-//": {
"prefix": "// fixme",
"body": [
"// FIXME-LLL25655: "
],
"description": "FIXME-LLL25655"
},
"HACK-LLL25655-//": {
"prefix": "// hack",
"body": [
"// HACK-LLL25655: "
],
"description": "HACK-LLL25655"
},
"TODO-LLL25655-#": {
"prefix": "# todo",
"body": [
"# TODO-LLL25655: "
],
"description": "TODO-LLL25655"
},
"NOTE-LLL25655-#": {
"prefix": "# note",
"body": [
"# NOTE-LLL25655: "
],
"description": "NOTE-LLL25655"
},
"BUG-LLL25655-#": {
"prefix": "# bug",
"body": [
"# BUG-LLL25655: "
],
"description": "BUG-LLL25655"
},
"DEBUG-LLL25655-#": {
"prefix": "# debug",
"body": [# FIXME-LLL25655:
"# DEBUG-LLL25655: "
],
"description": "DEBUG-LLL25655"
},
"XXX-LLL25655-#": {
"prefix": "# xxx",
"body": [
"# XXX-LLL25655: "
],
"description": "XXX-LLL25655"
},
"UNDO-LLL25655-#": {
"prefix": "# undo",
"body": [
"# UNDO-LLL25655: "
],
"description": "UNDO-LLL25655"
},
"FIXME-LLL25655-#": {
"prefix": "# fixme",
"body": [
"# FIXME-LLL25655: "
],
"description": "FIXME-LLL25655"
},
"HACK-LLL25655-#": {
"prefix": "# hack",
"body": [
"# HACK-LLL25655: "
],
"description": "HACK-LLL25655"
}
}

生成函数注释

  • 函数注释模板插件:

    • C++: Doxygen Documentation Generator

      • 设置:C_Cpp › Doxygen: Generated Style
    • Python: autoDocstring - Python Docstring Generator

  • GitHub Copilot: 选中函数,Ctrl+I打开内联聊天,输入/doc in Chinese

创建(函数)声明/定义

鼠标选中,右键“创建声明/定义”

改变大小写

change-case:快速更改当前选择或当前单词的大小写(camelCase、CONSTANT_CASE、snake_case 等)

选中单词,按下Ctrl+Shift+P搜索Change Case Commands...

当然,可以按Ctrl+K S搜索Change Case为特定命令设置快捷键。

多代码库编码的工作空间

10 amazing VS Code tips and tricks for rapid coding

想象一下必须在 3 个打开的 VS Code 窗口中来回切换的痛苦;到处打开终端,在错误的代码库中搜索错误的文件,将 Alt + Tab 序列与其他打开的应用程序混合在一起,以及每次切换应用程序时都会造成的精神混乱和延迟。

每个文件夹都是 VS Code 的一个工作区,因此您可以使用文件 > 将文件夹添加到工作区...轻松添加更多文件夹。

一切完成后,您将拥有所需的所有文件夹,并且可以在“文件资源管理器”窗格中轻松访问其中的文件。

当您使用 Ctrl + P 或 Ctrl + Shift + F 搜索文件时,它将应用于所有文件夹中的每个文件。

您还可以使用任何文件夹作为工作目录快速创建新终端。

将选中内容与剪切板内容进行比较

安装插件“Diff Clipboard”,选中内容后右键点击“Compare with Clipboard“。

矩形选择

在 Visual Studio Code 中,您可以通过以下步骤选择一个矩形的区域:

  1. 按住ShiftAlt键(在 macOS 上是ShiftOption键)。
  2. 同时拖动鼠标(鼠标分别点击开始和结束位置)以选择所需的矩形区域。

重启窗口

Ctrl+Shift+P-输入:Reload Window

其它

  1. 在“资源管理器”视图中查看当前文件并输入 F2 或者 Enter 选择文件名文本:
    • 第一次按 => 选中文件前缀
    • 第二次按 => 选中文件全部
    • 第三次按 => 选中文件后缀
    • 第 4 次按下 => 循环回到前缀
  2. 等等。

Zotero

快捷键 作用
zotero-reference
单击蓝色区域 复制参考文献信息,连同标识符一起复制,如DOI。
双击顶部XX条参考文献文字 复制当前所有参考文献到剪贴板
长按蓝色区域 编辑参考文献信息。建议中文参考文献使用编辑功能以精简条目,提高导入成功率。
Ctrl+单击蓝色区域 用系统浏览器打开文献URL,偶尔会查询文献地址消耗一定的时间。
一般
ctrl+鼠标滚轮 放大/缩小
ctrl+鼠标左键在原文/译文之间自由切换 翻译

主阅读界面若有跳转链接如Fig 4,点击后会在分割界面(横向/竖向)跳转,主阅读界面无跳转,避免点击前进后退。可满足看图,公式,表格的需求。但只针对有跳转链接的PDF。


常用软件的使用
http://zeyulong.com/posts/78dbcabb/
作者
龙泽雨
发布于
2025年7月2日
许可协议