系统配置与软件安装[持续更新……]
本文最后更新于 2024年10月17日 晚上
本文主要分享了Windows、Linux系统的配置与常用软件的安装。
官方文档一般比个人博客的说明要更详细。所以在下载和使用时可以优先参考官方文档,个人博客用作补充和处理特殊情况(报错,等)。
常用软件与工具汇总
网址或为软件/工具官网,或为安装教程。没有附带网址或为系统自带,或为使用破解版……
浏览器插件
-
- 阻止 YouTube™ 广告、弹出窗口并抵御恶意软件!
-
- 一款无与伦比的广告拦截扩展,用以对抗各式广告与弹窗。可以拦截 Facebook、YouTube 和其它所有网站的广告。
-
- 总是打开太多标签页?快来用Aerys帮你归类和整理标签!
-
- 利用 Adobe Acrobat PDF 工具在 Google Chrome 中完成更多任务:查看、填充、注释、签名,您还可以试试转换和压缩工具。
-
All Video Downloader professional
- Download videos from web sites or just collect them in your video list without downloading them.
-
- 在dblp、Google学术、Connected Papers和WoS的搜索结果中显示中国计算机学会推荐的会议和期刊排名。
-
沉浸式翻译: 双语对照网页翻译 & PDF文档翻译 immersive translate
-
沉浸式网页双语翻译扩展,支持PDF翻译,双语Epub电子书制作,Youtube/Netflix/Udemy 等平台双语字幕,支持Deepl/Google等多个翻译服务,免费使用。
请注意:要在基于Chrome内核的浏览器中修改快捷键,请访问[扩展管理页面] -> [管理快捷键]
如果你使用的是类 Chrome 浏览器,如(Chrome,Arc,Edge 浏览器),还有另一种办法,就是在浏览器中打开扩展管理页面chrome://extensions,找到【沉浸式翻译】插件,【允许该扩展访问本地文件】,之后直接在浏览器中打开本地的 HTML 或本地的 PDF 文件,就可以直接右键【翻译】了。
-
-
- 做Chrome浏览器中最好的下载管理器
-
Code Finder for Papers - CatalyzeX
- Get implementation code for research papers
-
- 使用用户脚本自由地改变网络
-
- 显示各种文献排名,并且提供翻译、文献收藏功能,助力科研。
-
- 此扩展提供了与 GNOME Shell 和相应扩展库 https://extensions.gnome.org 的集成
-
- 可让您在浏览网页时查询学术文章。
-
Google 文档的离线功能(Google无)(默认安装)
- 我们已安装此扩展,以帮助在你没有 Internet 时优化 Google Docs 体验。
-
-
拦截/重定向 URL && 修改 Headers
示例:
-
-
Grammarly: Grammar Checker and AI Writing App(Google无)
- Improve your writing with all-in-one communication assistance—including grammar check, generative AI, and more.
-
- Enlarge thumbnails, and show images/videos from links with a mouse hover.
-
- GitHub on steroids
-
- 可消除广告和干扰,只留下文本和图像,以便在任何网站上获得美丽的阅读视图。
-
- Saladict 沙拉查词是一款专业划词翻译扩展,为交叉阅读而生。
-
- A powerful reverse image search tool, with support for various search engines
-
视频下载扩展-CocoCut-video downloader
- 专业视频下载器和音乐下载器,可以在线下载视频、音乐。免费、安全、简单易用。
-
- Allow Copy on every websites
-
- 为 GitHub、GitHub Enterprise、GitLab、Bitbucket Server 和 Phabricator 添加了代码导航和代码智能。
-
- 一款用于嗅探、分析网页图片并提供批量下载等功能的浏览器扩展程序。
-
- 在浏览时合法获取学术文章的全文。
-
- 在论文搜索结果页面显示会议/期刊等级。目前支持在 Springer、 DBLP、IEEExplore 和 ACM DL 上显示 CCF 等级。
-
- Save references to Zotero from your web browser
Linux系统配置
双系统
Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程
Windows会故意搞坏Linux的启动项,使得Linux无法启动,所以Linux只能后装;然后Linux安装后,grub会自动找到Windows,把它的启动项放在启动列表末尾,如果你不修改grub-config的话,默认会启动到Linux。
安装WiFi驱动
在Windows下新装的双系统Linux Ubuntu18.04无法连接WiFi(桌面右上角下拉菜单里没有WiFi设置参数选项,设置里WiFi模块提示找不到WiFi适配器),尝试了各种方法(附在最后),无果。最终,发现是网卡驱动与系统内核版本的问题。
实现步骤
-
查看网卡驱动版本:切换到Windows系统-设备管理器-网络适配器-Intel(R)Wi-Fi 6E AX211 160MHz(我自己的)
-
切换回Linux系统。给电脑连接有线网:如果有网线的话可以直接给电脑插网线联网;没有的话将手机通过数据线连接到电脑上,在手机上打开设置-无线和网络-移动网络共享-打开USB共享网络(华为手机,其他品牌手机类似),可以看到Ubuntu界面右上角出现了一个品字形的有线网络连接图标。
-
更新软件列表:
1
sudo apt-get update
-
安装依赖包:
1
sudo apt install flex bison
-
克隆、编译和安装
backport-iwlwifi
:1
2
3
4
5
6
7
8
9# 克隆
git clone https://github.com/intel/backport-iwlwifi.git
# 注意backport-iwlwifi文件夹下载后就放在/home目录下,不然sudo make defconfig-iwlwifi-public会报错?
cd backport-iwlwifi
cd iwlwifi-stack-dev
# 编译和安装
sudo make defconfig-iwlwifi-public
sudo make
sudo make install报错:执行
sudo make defconfig-iwlwifi-public
命令时,提示make: *** 没有规则可制作目标“defconfig-iwlwifi-public”。 停止。
原因:
make menuconfig
命令需要进入内核源码目录才能使用,否则会提示以上错误。解决:参考链接
1
2
3
4
5
6
7
8
9
10
11sudo apt-get install linux-source # 按照提示下载最新版本的内核源码
cd /usr/src/ # 下载的源码在/usr/src目录中,进入该目录
# 将文件解压到/home/kernel目录下
sudo tar xvjf linux-source-4.15.0.tar.bz2 -C /home/kernel
# 如果提示没有该文件夹,执行以下命令直接新建kernel文件夹
cd /home
sudo mkdir kernel
# 进入 /home/kernel/linux-source-4.15.0文件夹
cd /home/kernel/linux-source-4.15.0
sudo make menuconfig
# esc退出保存即可 -
下载驱动程序。
终端执行以下命令下载AX210 WIFI驱动程序:
1
2
3git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git # 下载的文件数目较多,有900多M,时间较长,请耐心等待。
cd linux-firmware/
sudo cp iwlwifi-* /lib/firmware/也可直接从Intel Linux WiFi驱动官网下载驱动程序,解压后将ucode文件复制在
/lib/firmware
下。 -
重启系统,重要文件请提前保存。
-
重启后可以看到Ubuntu18.04桌面右上角下拉菜单出现Wi-Fi连接图标,正常连接即可。
其他参考链接
- Ubuntu18.04未发现WiFi适配器解决方案汇总
- Ubuntu18.04找不到wifi适配器解决办法以及怎么上网
- ubuntu18.04系统安装完之后显示未发现WiFi适配器(屡试不爽)
- Ubuntu18.04没有WiFi怎么解决?
- nmcli 命令行方式连接wifi及删除连接操作
- 如何使用 Nmcli 通过 Linux 终端连接到 Wi-Fi
NVIDIA显卡驱动
安装蓝牙驱动
我的电脑网卡是Intel(R)Wi-Fi 6E AX211 160MHz,因为蓝牙模块太新和Ubuntu18.04版本太老,自己尝试了各种方法,无果。结论写在这,Linux系统还是要尽量少折腾。如果有成功的解决方案十分欢迎在下方评论区留言。
安装触摸板驱动
我的电脑触摸板是Synaptics PrecisionTouchpad Filter Driver,因为触摸板模块太新和Ubuntu18.04版本太老,自己尝试了各种方法,无果。结论写在这,Linux系统还是要尽量少折腾。如果有成功的解决方案十分欢迎在下方评论区留言。
安装声卡驱动
我的电脑声卡是Realtek(R) Audio,因为声卡模块太新和Ubuntu18.04版本太老,自己尝试了各种方法,无果。结论写在这,Linux系统还是要尽量少折腾。如果有成功的解决方案十分欢迎在下方评论区留言。
挂载硬盘
-
Win+A打开应用程序列表,找到并打开Disk。
-
找到硬盘分区,设置自动挂载。
-
以后,开机后,打开资源管理器-其他位置,点击一下已经检测到但是还没有被挂载的硬盘分区就好了。
1
2Windows /dev/nvme0n1p3
Data /dev/nvme1n1p2 -
完成。
安装鼠标驱动
我使用的鼠标是Logitech G502,但是Logitech的鼠标驱动Logitech G HUB只提供了Windows和Mac版。当然,我相信Piper提供的鼠标驱动不止适用于这款鼠标。
锁屏不熄屏
短按Win+L
会锁屏,然后关显示器; 按Win+L
持续几秒钟(屏幕会一闪),就会采用你设置的关屏时间(设置里面的电源选项里面),设置成never
就永远亮着了。
更换壁纸
- 把壁纸放到
~/Pictures
文件夹下。 - 设置-背景-背景(B)/锁定屏幕(L)-图片-选择。
新建快捷键
设置-设备-键盘-翻到底部:添加
名称 | 命令 | 快捷键 |
---|---|---|
control-center | gnome-control-center |
Win+I |
打开文件夹 | nautilus /home/lll25655/ |
Win+E |
fsearch | fsearch |
Ctrl+Alt+F |
flameshot | flameshot gui |
Ctrl+Alt+A |
Gnome插件
- Clipboard Indicator
- 最流行的 GNOME 剪贴板管理器,下载量超过 100 万次。
- Coverflow Alt-Tab
- 替换 Alt-Tab,以覆盖流方式迭代窗口。
- Recent Items
- 在顶部面板添加最近使用的项目的图标。
- Unite
- Unite 是一个 GNOME Shell 扩展,它对顶部面板进行了一些布局调整并删除了窗口装饰,使其看起来像 Ubuntu Unity Shell。
- User Themes
- 从用户目录加载 shell 主题。
电源模式
基本模式
在Linux中,内核的开发者定义了一套框架模型来完成CPU频率动态调整这一目的,它就是CPU Freq系统。如下为CPU的几种模式(governor
参数):官方文档
ondemand
:系统默认的超频模式,按需调节,内核提供的功能,不是很强大,但有效实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。一般官方内核默认的方式都是ondemand
。powersave
:省电模式,通常以最低频率运行。performance
:性能模式!只有最高频率,从来不考虑消耗的电量,性能没得说,但是耗电量。interactive
:交互模式,直接上最高频率,然后看CPU负荷慢慢降低,比较耗电。Interactive
是以 CPU 排程数量而调整频率,从而实现省电。InteractiveX
是以 CPU 负载来调整 CPU 频率,不会过度把频率调低。所以比Interactive
反应好些,但是省电的效果一般。conservative
:保守模式,类似于ondemand
,但调整相对较缓,想省电就用他吧。Google官方内核,kang内核默认模式。smartass
:聪明模式,是I和C模式的升级,该模式在比interactive
模式不差的响应的前提下会做到了更加省电。userspace
:用户自定义模式,系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置。Hotplug
:类似于ondemand
, 但是cpu会在关屏下尝试关掉一个cpu,并且带有deep sleep,比较省电。
查看cpu所有核所处模式:
1 |
|
较新的linux版本对於Intel的处理器有优化,导致无法看到五种
governors
,只有powersave
和performance
两种,但实际效果并不好。这是由于使用intel_pstate
驱动导致的,可以通过在引导脚本增加intel_pstate=disable
关闭。
查看CPU主频与实际的运行主频:
1 |
|
模式调节
对于对时延和性能要求高的应用,需要在服务器BIOS中修改电源管理为
Performance
,从而关闭 CPU 的动态调节功能,禁止 CPU 休眠,把CPU频率固定到最高。
我们既可以在BIOS进行设置,也可以在OS系统内部进行设置。
图形化切换器可用于转换CPU模式(省电模式和性能模式),命令行可用于查看CPU当前频率。
图形界面
indicator-cpufreq
-
安装:
1
sudo apt-get install indicator-cpufreq
-
重启电脑。
-
点击电脑右上角图标改变电源模式。
Slimbook Battery
-
安装:
1
2
3sudo add-apt-repository ppa:slimbook/slimbook
sudo apt update
sudo apt install slimbookbattery -
安装后即可在应用程序界面找到
Slimbook Battery
。 -
启动之后,可以在「顶部面板」中找到它,并可以在此切换 Ubuntu 电源模式:
Energy Saving
:节能模式,最大限度节省电池Balanced
:平衡模式,在性能和节能之间进行平衡Maximum Performance
: 最高性能模式,显着提高系统性能
-
(可选)也可以在「advanced mode(高级模式)」配置菜单中对以上 3 种电源模式分别进行细化配置。如果配置搞得太乱,可以通过「restore default values」按钮来恢复 Slimbook Battery 的默认电源设置,还可以对「常规配置」进行更改,如:自动启动和默认电源模式等。
命令行
cpufrequtils
-
安装:
1
sudo apt-get install cpufrequtils
-
查看当前CPU的状态:
1
cpufreq-info
-
设置CPU模式:
1
2
3sudo cpufreq-set -g {powersave, userspace, ondemand, conservative, performance}
# {最省电(最低频率),用户控制,最高或最低,正常,最大性能}
# 模式就是执行cpufreq-info后看到的所支持的模式 -
(可选)设置CPU频率(对应
userspace
模式):1
cpufreq-set -f {600~1500} # 设置你的频率,使用 cpufreq-info 命令可以查看你的cpu支持哪些
选择其它电源模式的时候在以下范围内自动控制:使用
cpufred-set -d 600M
(最低) ,cpufreq-set -u 1.5G
(最高)。对于非单核的CPU需要加上参数
-c
,c
就是CPU的序号,使用cpufreq-info
可以查询到。例如:1
sudo cpufreq-set -c 11 -g performance
-
完成。
linux-tools-common
-
安装:
1
sudo apt install linux-tools-common
-
查看cpu状态:
1
cpupower -c all frequency-info
-
调整CPU到性能模式:
1
cpupower -c all frequency-set -g performance
-
完成。
使用上述方式,重启系统后可能又回到默认方式。修改默认模式:
安装
sysfsutils
:
1sudo apt-get install sysfsutils
查看当前的调节器:
1
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
编辑
/etc/sysfs.conf
,增加如下语句:
1sudo gedit /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
填写需要更改的状态。
参考脚本
1 |
|
这个配置重启后会失效。如果需要持久化,可以设置开机自动运行本脚本,或通过修改BIOS配置达到目的。
参考链接
- Ubuntu18.04下 设置CPU Performance模式
- ubuntu系统CPU性能模式设置
- linux设置performace高性能模式
- 如何使用 Slimbook Battery 实现 Ubuntu 高级电源管理
- linux物理机设置 CPU Performance 模式
升级GLIBC_
注意
没有金刚钻就不要升级glibc!因为glibc是系统最基础的C库,几乎所有的运行库都依赖它,特别是系统命令,一旦升级了glibc极有可能会导致很多系统命令都没法正常使用,这个系统基本上就报废了,这是很多Linux小白容易遇到的问题。
其他依赖的第三方库都可以升级,唯有glibc不建议升级。正确的做法是在同一版本或者更低版本glibc的系统上进行编译可执行文件。
下表是主流Linux发行版Ubuntu/CentOS/Debian系统默认的glic版本:
Ubuntu | Debian | CentOS | Glibc |
---|---|---|---|
22.04 | - | - | 2.34 |
20.04 | 11 | - | 2.31 |
- | 10 | 8 | 2.28 |
18.04 | - | - | 2.27 |
- | 9 | - | 2.24 |
16.04 | - | - | 2.23 |
14.04 | 8 | - | 2.19 |
13.04 | - | 7 | 2.17 |
12.04 | - | - | 2.15 |
- | 7 | - | 2.13 |
- | - | 6 | 2.12 |
查询版本
1 |
|
命令行安装
1 |
|
源码编译
-
安装依赖项:
1
sudo apt-get install gawk bison texinfo
-
下载压缩包:
1
wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.29.tar.gz
-
编译安装:
1
2
3
4
5
6tar -zxvf glibc-2.29.tar.gz
cd glibc-2.29
mkdir build && cd build
../configure --prefix=/usr/local/glibc/glibc-2.29 # configure最好不要加--with-headers参数,否则会遇到一些问题,因为这个参数指定make在该目录下查找库
sudo make -j8 # 可以使用nproc来查看CPU核心数。编译的时间蛮长的,耐心等待。
sudo make install报错:
-
LD_LIBRARY_PATH shouldn’t contain the current directory when building glibc. Please change the environment variable。
此时把LD_LIBRARY_PATH临时设为空可以解决该问题:
1
export LD_LIBRARY_PATH=
-
等。
-
-
添加环境变量:
1
2
3
4
5
6
7
8sudo gedit ~.bashrc
# 添加
export PATH=$PATH:/usr/local/glibc/glibc-2.29/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/glibc/glibc-2.29/lib
# 保存后退出
source ~.bashrc -
(谨慎,建议先跳过这一步)修改软链接。不可直接删除旧版软链接,如
libm.so.6
等,否则会导致系统崩溃。应备份后创建同名软连接指向新版:1
2cp /lib/x86_64-linux-gnu/libm.so.6 /lib/x86_64-linux-gnu/libm.so.6.bak
ln -s /usr/local/glibc-2.29/lib/libm.so.6 /lib/x86_64-linux-gnu/libm.so.6 -
查询当前版本:
1
ldd --version
-
完成。
参考链接
主流Linux发行版(Ubuntu/CentOS/Debian)系统默认glibc版本
小贴士
终端按回车键执行不了命令
看看是不是把数字键锁定了?
代码编辑器的选择
VSCode代码编辑器与JetBrains系列等大型IDE的对比:
- 大型IDE集成度高,功能丰富齐全。但也因此臃肿,内存占用高(需要电脑配置好一点,否则会带不动,卡)。大多数人(不从事大型项目的开发)其实用不到这么多的功能。但是,大材小用,杀鸡用牛刀,千斤拨四两,不可以吗?
- VSCode轻便,本身没什么功能,但社区活跃,插件丰富。往高了说,是可定制性高,拓展性强,更适合打造自己风格的写代码环境。往低了说,其实这些插件的功能,大型IDE多是本身自带就有的,插件的开发就是为了弥补VSCode没有IDE相关功能的不足。从这个方面讲,为什么不直接用IDE呢?
- 另外,VSCode实际作为代码编辑器而不是IDE,配合相关插件可以直接适配多种语言,而一款IDE一般只专门针对一种语言。
- 且VSCode现在支持了配置文件功能,可以方便配置切换使用不同语言时的系统环境,避免插件多了会发生功能冲突,简称打架。
- VSCode的远程开发做得好像是最好的?
- 更喜欢使用哪个,看自己偏好。
20240718更新:
JetBrains系列的IDE论各种功能的完善度、准确性、响应速度和丰富性,细节的打磨,更多的功能,更便捷的操作,都要比VSCode好。但是!令人无语的是,到目前为止,JetBrains里集成的GitHub Copilot远逊色于VSCode(看插件评论区骂声一片),不论是Copilot生成提示的智能性(我怀疑JetBrains里没有用很好的GPT),这也是最重要的。还是各种功能的打磨和完善,比如VSCode有更便捷的操作,而在JetBrains里,我遇到了Copilot插件高版本报错和无法自动联系上下文的问题(看插件评论区,这并不是个例)。可能是因为JetBrains更想推自己的大模型JetBrains AI Assistants?
纵然JetBrains系列的IDE各种功能更好,但是,最重要的还是写代码。我开始倾向于用VSCode写代码了,用JetBrains看代码(当VSCode受限时)。也许,如果JetBrains还不思进取而VSCode还在节节高升的话,我最终会完全转到VSCode下了。
20240829更新:
至少在C++编程方面,VSCode相较于CLion(JetBrains系列的IDE)除了轻量级和可定制性高外的唯一突出的优点就是GitHub Copilot更好用了。实测下来,在代码提示、重构代码、查找用法和静态分析等其它各种方面,CLion是更好用的。而这些方面,可以更好地辅助程序员阅读代码和排错(很重要)。
20240831更新:
实测发现,VSCode的“C/C++”插件包括静态代码分析(很重要)在内的各种功能不如“clangd”插件。因此,仅使用“C/C++”插件进行代码的构建,静态代码分析、代码补全等功能交给“clangd”插件。这样也就缩短了与CLion的差距。VSCode在Git集成的细节上不如CLion。
[clangd插件配置](# clangd插件)
窗口管理器
建议:大致规划一下工作区,比如工作区1写代码,工作区2看log,工作区3看网页和文档。然后绑定一下三个屏幕的快捷键或者利用 Ctrl+Alt+Up/Down切换工作区。在对应工作区上再使用Alt+Tab切换窗口。
这样不需要额外写代码或记录新的快捷键,跨发行版或重新安装无障碍。
窗口管理器 vs 桌面环境
- 窗口管理器(Windows Manager),负责绘制窗口的边框,处理窗口运行比如移动、最小化之类的行为。
- 桌面环境(Desktop Environment),窗口管理器的超集,它使用窗口管理器及其其他软件提供一个完整的工作环境。
例如:gnome就是一个桌面环境,默认使用Metacity作为窗口管理器。
平铺式窗口管理器
平铺就是之所有的窗口都不会相互重叠,而是 自动的 被调整大小使得它们能够刚好占满整个屏幕。
相对的,我们平时使用的是浮动式窗口管理器,由于屏幕空间有限,当前激活的窗口会浮在最上面,而遮住下面的窗口。
常见的窗口管理相关的工具如下:(来自alim0x - Awesome-Linux-Software-zh_CN)
合成器
- Compton - Compton 是一款独立的合成管理器,适合同没有原生提供合成功能的窗口管理器一同使用。
- Gamescope - Gamescope 是一款微合成器,提供一个带有独立输入,分辨率和刷新率的沙盒 Xwayland 桌面。
- Sway - Sway 是平铺 Wayland 合成器和 X11 下 i3 窗口管理器的新替代。
- Xcompmgr - Xcompmgr 是一个简单的合成管理器,能够渲染下拉阴影,使用 transset 工具的话,还可以实现简单的窗口透明。
叠加式窗口管理器
- 2bwm - 快速的浮动窗口管理,有两个特殊边界,基于 XCB 库,由 mcwm 衍生。
- Blackbox - 快速,轻量化的 X 窗口系统窗口管理器,没有那些烦人的库依赖。
- Fluxbox - 基于 Blackbox 0.61.1 代码的 X 窗口管理器。
- Openbox - 高度可配置,带有可扩展标准支持的下一代窗口管理器。
平铺式窗口管理器
- Bspwm - bspwm 是一个平铺式窗口管理器,将窗口以二叉树的叶结点的方式展现。
- Herbstluftwm - 使用 Xlib 和 Glib 的手工平铺式窗口管理器。
- i3 WM - 更好的平铺及动态窗口管理器。完全重写。目标平台是 GNU/Linux 和 BSD 操作系统。
- i3-gaps - i3-gaps 是拥有更多功能的 i3。
- Pop!_OS Shell - Pop Shell 是基于 GNOME shell 的窗口管理器,键盘驱动,自动平铺。
- Qtile - qtile 是一款全功能,可 hack 的平铺窗口管理器,使用 Python 编写和配置。
动态窗口管理器
- awesome - 高度可配置,下一代 X 框架窗口管理器。
- dwm - X 动态窗口管理器。它以平铺,单片镜以及浮动布局的方式管理窗口。
- spectrwm - 小型动态平铺 X11 窗口管理器。主要受 xmonad 和 dwm 启发。
- xmonad - 动态平铺 X11 窗口管理器,用 Haskell 编写和配置。
CLion
下载安装
-
在下载链接下载CLion。
CLion20230302版本在我的Ubuntu18.04系统上界面排版不正常,多种尝试无果。CLion20230202版本正常。
-
安装:
1
2
3
4
5# sudo mkdir /opt/clion
cd yourfloder
tar -xzvf CLion-2017.1.1.tar.gz
cd clion-2017.1.1/bin
./clion.sh
测试
- 初始化完成后,进入欢迎界面。
- 选择 New Project。
- 设置项目路径和C++标准。
- 进入 CLion 主界面。这里将会默认新建 main.cpp 文档,并有示例。
- 运行程序。点击右上角的绿色按键,使可以运行程序,运行结果在最下面的窗口。
配置
通用
-
导入设置:
注意同步设置时CLion的版本最好一致,否则可能有问题(尤其对于插件来说)。或者直接就不选择同步插件了。
- 文件-管理IDE设置-设置同步-开启设置同步-Get setting from account
- 或:文件-管理IDE设置-导入设置。
-
工具-创建桌面图标(条目)。
-
帮助-更改内存设置-最大堆大小:
8192
MiB -
帮助-编辑自定义虚拟机选项:
1
2
3# clion64.vmoptions
-Xms4096m
-Xmx8192m -
解决CLion20230202版本输入法不跟随的情况:从JetBrainsRuntime下载
jbr_jcef-17.0.9-linux-x64-b1087.9.tar.gz
,解压并重命名为jbr
,替换掉CLion安装目录的jbr
。 -
文件-设置-外观与行为-系统设置-HTTP代理-手动代理配置-HTTP:
1
2
3# 以实际为准
主机名(H): 127.0.0.1
端口号(N): 10809 -
插件:
有些插件在安装后可在文件-设置里做进一步配置。
手动安装插件:
- 在https://plugins.jetbrains.com/的插件主页-Versions下载相关版本的`*.zip`压缩包。
- 打开CLion-设置-插件,点击中间右上角的竖向的3个点-从磁盘安装插件,即可覆盖之前安装的插件版本。
- Atom Material Icons:图标美化
- CamelCase:一键转化变量为驼峰命名或下划线命名
- Chinese(Simplified)Language Pack/中文语言包
- CodeGlance Pro:文件预览条
- CSV Editor:CSV文件编辑器
- GitHub Copilot:大模型辅助
- GitToolBox:通过附加功能扩展Git,比如行后显示提交历史。设置-版本控制-GitToolBox
- Git Commit Message Helper:标准化提交信息。设置-其它设置-GitCommitMessageHelper
- Grep Console:美化配置终端
- Hatchery:支持ROS
- Key Promoter X:快捷键提示,界面右下角通知。用作提醒自己可以使用的快捷键。
- Nyan Progress Bar:(彩虹猫)进度条美化
- One Dark theme: One Dark Vivid Italic。主题美化。
- Presentation Assistant:快捷键提示,界面中间底部绿色横幅。用作提醒自己刚使用的快捷键。2023.03版本后内置在设置-外观与行为-Presentation Assistant。
- Rainbow Brackets:彩虹括号
- Rainbow CSV:美化CSV文件
- SequenceDiagram:时序图,支持
JAVA
、kotlin
和Scala
文件 - StickyScroll:粘滞滚动(简化版是向下拆分)
- String Manipulation:字符串处理
- Translation:IDE内翻译插件
-
设置界面字体大小:设置-外观与行为-外观-使用自定义字体-大小。
-
设置代码字体(大小):设置-编辑器-字体(大小);设置中文字体:-版式设置-回滚字体。
-
界面底部-右键-内存指示器。
-
双击选中一个变量,及高亮显示相同的变量。文件-设置-编辑器-配色方案-常规-代码-文本光标下的标识符/文本光标下的标识符(写入)-背景(FF0000)+错误条纹标记(FF0000)(侧边栏显示大概范围)。(插件BrowseWordAtCaret也可以?)
-
光标所在行的颜色。文件-设置-编辑器-配色方案-常规-编辑器-文本光标所在的行-背景。
-
显示空格。文件-设置-编辑器-常规-外观-显示空格。
-
制表符转空格。文件-设置-编辑器-代码样式-C/C++(CMake)-取消勾选使用制表符,缩进:4。各个值取4或4的倍数。
-
添加特殊注释。文件-设置-编辑器-TODO:可添加自定义Tag并配置筛选器。
- 如TODO、FIXME、XXX、HACK/BODGE/KLUDGE、BUG/DEBUG、UNDONE和NOTE等。
- 勾选:将以下行中的缩进文本视为同一TODO的一部分,后,在特殊注释的下面一行注释后加一个空格再注释,该行会被视为上一行特殊注释的一部分。
-
自动换行。
- 对单个文件:View-Active Editor-Use Soft Wraps
- 整个编辑器:Preferences-Editor-General-Use Soft Wraps in Editor-对这些文件进行软换行: *(default: *.md; *.txt; *.rst; *.adoc)
- 设置-高级设置-编辑器-对代码行长度超过此值的文档强制进行自动换行
-
定义实时模板(自定义自动补全的语句)。例如,自动替换中文输入法下的
、、
转化为//
:- 文件-设置-编辑器-实时模板。
- 选中中间C/C++选项下的任意条目。点击左上角的
+
号-实时模板。 - 设置下面的信息:
- 缩写:、、
- 描述:单行注释
- 模板文本:
//+空格
- 适用于:全选
- 选项-展开方式-空格。
- 确定设置。
- 这样,在编辑器中输入
、、
再按下空格后,、、
就会自动被替换为//
了。
输入“for”,按下默认快捷键Tab键选中。按下m,把i修改成m。再按一下Tab,光标位置变了。输入内容之后再按一下Tab之后就进入了for的{}内。
类似的,可以为特殊注释配置实时模板,例如:
// todo
(空格触发)->// TODO-LLL25655:
。 -
自定义文件头。
文件-设置-编辑器-文件和代码模板-C File Header,示例:
Google推荐一行最多80个字符,所以模板中使用了80个 * 。
1
2
3
4
5
6
7
8
9/********************************************************************************
* @author: Song Jiahao
* @email: songjiahao@whu.edu.cn
* @date: ${DATE} ${TIME}
* @version: 1.0
* @description:
********************************************************************************/默认:
1
2
3
4
5
6
7
8
9
10#if ($HEADER_COMMENTS)
//
// Created by $USER_NAME on ${DATE}.
#if ($ORGANIZATION_NAME && $ORGANIZATION_NAME != "")
// Copyright (c) $YEAR ${ORGANIZATION_NAME}#if (!$ORGANIZATION_NAME.endsWith(".")).#end All rights reserved.
#end
//
#end创建新的文件时,会自动生成自定义的文件头。
-
关联文件类型:设置-编辑器-文件类型-识别的文件类型:XML-文件名模式-添加-
*.launch
-确定;YAML-文件名模式-添加-*.rviz
-确定。 -
取消
Ctrl+/
注释顶格:文件-设置-编辑器-代码样式-C/C++-常规:
- 取消勾选“行注释在第一列”
- 勾选“在行注释开始处添加空格”
- 取消勾选“注释快在第一列”
- 勾选“在块注释中缩进新行”
-
设置-高级设置-Clangd-使用基于Clangd的索引器。
感觉还是不勾选好用。不勾选有“写入值”、“读取值”、“动态用法”等分类。勾选后只有“声明”和“未分类”。
-
参数提示:设置-编辑器-嵌入提示
-
设置-编辑器-代码样式-强制换行位置:80-勾选“键入时换行”
-
粘贴后自动格式化:编辑器-智能按键-粘贴时重新设置格式-重新设置块格式-勾选“再次重新设置格式以移除自定义换行符”
-
只格式化当前版本新修改的代码:工具栏-代码-重新设置文件格式(
Ctrl+Alt+Shift+L
)-Only VCS changed text(默认:整个文件)-Run,后再执行格式化快捷键Ctrl+Alt+L
,就只会更新自己的代码。 -
等等。
其它
-
对于智能 IDE,了解其使用的文件中的任何外部更改至关重要 - 例如VCS、构建工具或代码生成器等所做的更改。因此,IDE平台会启动一个后台进程来监视此类更改。而监控值不够的话,响应速度会不够。
1
2
3
4
5
6
7
8
9
10
11cd /etc/sysctl.d/
sudo touch idea.conf
sudo gedit idea.conf # 输入
fs.inotify.max_user_watches = 1048576
# 保存并退出
sudo sysctl -p --system # 运行此命令以应用更改
sysctl fs.inotify.max_user_watches # 查看当前设置
# 重启IDE -
格式化:项目目录中的
.clang-format
中的格式化配置优先于CLion中设置的。
使用
卸载
注意:
- 卸载CLion会删除所有相关文件和配置,包括项目文件和设置。如果您需要保留这些文件,请备份它们。
- 如果电脑中给还有其他JetBrains系列的产品,删除需谨慎。
-
备份设置。
- 文件-管理IDE设置-设置同步-开启设置同步。
- 或:文件-管理IDE设置-导出设置。
-
卸载CLion。删除安装时创建的主程序目录(.tar.gz解压出的文件夹)。
-
备份配置文件:
执行命令
sudo find / -iname "*clion*"
、sudo find / -iname "*JetBrains*"
来找到系统中CLion的文件,其中-iname
参数表示按名称搜索,无论大小写。一般为:~/.config/JetBrains/<product><version>
~/.local/share/JetBrains/<product><version>
~/.cache/JetBrains/<product><version>
~/.CLion2022.1
~/.java
-
删除配置文件。使用命令
sudo rm -rf
命令删除配置文件。删除后再次执行命令sudo find / -iname "*clion*"
、sudo find / -iname "*JetBrains*"
来确认删除完全。~/.gnome/apps/jetbrains-clion.desktop
~/.local/share/applications/jetbrains-clion.desktop
-
如要恢复配置文件。将备份的目录重新移动到原来的位置即可。
CLion调试ROS项目
-
新建工作空间。
1
2
3
4
5
6
7
8
9
10
11cd youfolder/
mkdir -p catkin_ws/src
cd catkin_ws
catkin config --init --mkdirs --extend /opt/ros/melodic --merge-devel --cmake-args -DCMAKE_BUILD_TYPE=Release
cd src
catkin_init_workspace # 创建顶层CMakeLists.txt文件,CLion利用此文件打开项目
cd ..
catkin build # 编译生成完整工作区此时,
./catkin_ws
文件夹下有build
、devel
、logs
和src
四个文件夹。 -
由于ROS的功能包需要先source,所以得把clion的启动方式改为bash启动,这样会先自动source功能包,否则会出现错误:
1
message(FATAL_ERROR “find_package(catkin) failed. catkin was neither found in the workspace nor in the CMAKE_PREFIX_PATH. One reason may be that no ROS setup.sh was sourced before.”)
修改方法:
1
sudo gedit /usr/share/applications/jetbrains-clion.desktop
修改里面的Exec行,修改后的内容如下:
1
2# Exec="/opt/clion-2023.1.1/bin/clion.sh" %f
Exec=bash -i -c "/opt/clion-2023.1.1/bin/clion.sh" %f -
打开项目。打开CLion,文件-打开-选择
./catkin_ws/src
文件夹下的顶层CMakeLists.txt
文件(不要选择子功能包里面的)-作为项目打开。 -
配置项目。文件-设置-构建、执行、部署-CMake:
1
2
3
4# CMake选项:
-DCATKIN_DEVEL_PREFIX=../devel
# 构建目录:
../build -
选中
./catkin_ws/src
文件夹下的顶层CMakeLists.txt
文件作为要加载的CMakeLists.txt
文件,鼠标右键-加载CMake项目
。CLion会自动开始编译项目,等待编译成功即可。之后如果想要重新编译,可以右键左侧的项目树,选择重新加载Cmake项目
;或点击界面底部的Cmake
,后点击弹出界面左上角的刷新
符号。项目树会变成:
src
├── googletest /usr/scr/googletest
└── src /youfolder/catkin_ws/src
如果之前已经自动创建了
cmake-build-debug
文件夹,直接删了就好。报错:
-
CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkin_workspace.cmake:95 (message):
This workspace contains non-catkin packages in it, and catkin cannot build
a non-homogeneous workspace without isolation. Try the
'catkin_make_isolated' command instead.
Call Stack (most recent call first):
CMakeLists.txt:68 (catkin_workspace)
解决:使用‘catkin_make_isolated’代替‘catkin_make’进行编译或移除非catkin类型的package。
-
-
调试ROS节点程序。
-
编译成功后,Clion会自动加载该ROS项目的全部节点,显示在界面右上角。选择好要调试的节点,可以通过
选择节点-编辑配置-程序实参
来配置参数。 -
选择好节点后,点击节点旁边的小锤子符号来重新构建程序。
-
构建成功后,可以点击节点附近小虫子符号来启动调试,如打断点等。
调试的时候可能需要终端启动roscore。
-
完成。
-
-
完成。
参考链接:
GDebi
更高级的包(*.deb*
)管理工具——区别于Ubuntu内置默认的软件安装。
1 |
|
点击安装没有反应可能是包安装需要提前赋予管理员权限。
git
Mission Center
类似于Windows的任务管理器。
安装
-
安装Flatpak
1
2
3
4
5
6# 要在 Ubuntu 18.10 (Cosmic Cuttlefish) 或更高版本上安装 Flatpak,只需运行:
sudo apt install flatpak
# 对于较旧的 Ubuntu 版本,推荐使用官方 Flatpak PPA 来安装 Flatpak。要安装它,请在终端中运行以下命令:
sudo add-apt-repository ppa:flatpak/stable
sudo apt update
sudo apt install flatpak -
安装软件 Flatpak 插件。软件应用程序的 Flatpak 插件使得无需命令行即可安装应用程序。要安装,请运行:
1
sudo apt install gnome-software-plugin-flatpak
注意:自 Ubuntu 20.04 起,该软件应用程序以 Snap 形式分发,并且不支持 Flatpak 应用程序的图形安装。安装 Flatpak 插件还将安装 deb 版本的软件,并导致同时安装两个软件应用程序。
安装完flatbub生成一个应用商店(图标由矩形、圆和三角形组成)。
-
添加 Flathub 存储库。Flathub 是获取 Flatpak 应用程序的最佳地点。要启用它,请运行:
1
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
-
重启。要完成设置,请重新启动系统。现在您所要做的就是安装一些应用程序!
-
安装MissionCenter。
-
命令行安装:
1
sudo flatpak install flathub io.missioncenter.MissionCenter
-
商店安装:安装完flatbub生成一个应用商店(图标由矩形、圆和三角形组成),用法和snap商店一样,搜索mission center然后安装即可。
-
-
安装完成后会生成一个软件图标(名叫“任务中心”)。
运行
-
命令行运行:
1
flatpak run io.missioncenter.MissionCenter
-
图标运行:安装完成后会生成一个软件图标(名叫“任务中心”),应用列表点击图标即可。
Office
Microsoft Office
配置
修改快捷键
- File(文件)->options(选项)-> Customize ribbon(自定义功能区)->Customize (自定义快捷键)
- 选择 All commands(所有命令)->PasteTextOnly(粘贴纯文本), 在 Press new shortcut key (键入新快捷键)中输入自己喜欢的快捷键,例如示例中的 Ctrl+Shift+V, 点击 Assign(确定),即可使用快捷键 Ctrl+Shift+V 去粘贴为纯文本了。
Libre Office
配置
修改快捷键
- 点击:右上角“设置”符号-自定义-按键。
- 选中右上角的"LibreOffice"。
- 在“快捷键”栏找到“Shift+Ctrl+V”。
- 在“类别”栏找到“编辑”,在“功能”栏找到“粘贴无格式文本”。
- 单击窗口右上角“修改”,单击右下角“确定”。
- 同样的操作,将“Shift+Ctrl+Alt+V”的功能改为“选择性粘贴”。
Okular
Linux下使用的PDF阅读器。
安装
1 |
|
中文配置
如果安装完成后中文显示有问题的话,可按如下试试,如果没有问题可跳过。
1 |
|
如果依然不行,则可能是因为某些 pdf 文件没有明确指明字体,系统就会默认用英文字体来显示,于是导致中文字体显示失败。解决办法是:
1 |
|
把
1 |
|
改为
1 |
|
如果修改后的字体 monospace 依然不能显示,则可以改为 宋体 来显示。
运行
安装成功后,在桌面上运行以下路径打开路径: Activities -> Show Applications -> Okular
或使用如下所示的命令通过终端启动它
1 |
|
报错:无法找到 Okular 组件︰ 共享库没有被找到。
原因:我找到了谜团的答案。它位于我的.bashrc
文件中,其中包含一行:export LD_LIBRARY_PATH=/usr/local/Qt/5.10.1/gcc_64/lib:$LD_LIBRARY_PATH
,它导致了其他应用程序(例如kile
)出现类似的奇怪问题。这是在升级后出现的,因为该行以前是无害的。最后,我必须指出,我的安装中存在引用的库目录(即,这个问题并不是因为缺少目录而引起的)。
解决:
-
从应用程序菜单中运行okular。
-
# 或 sudo okular
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3. 或,卸载重装Okular。
4. 或,重启电脑之后就能用了?
## 使用
[Okular常用快捷键](https://zeyulong.com/posts/a8aab215/#Okular)
## 卸载
```bash
apt list --installed | grep -i okular # 模糊搜索
sudo apt remove okular # 卸载软件
sudo apt-get purge okular # 清除配置
Piper
我使用的鼠标是Logitech G502,但是Logitech的鼠标驱动Logitech G HUB只提供了Windows和Mac版。当然,我相信Piper提供的鼠标驱动不止适用于这款鼠标。
安装
1 |
|
使用
Win+A打开应用列表,找到Piper点击即可。
QQ Linux版
下载安装
如何选择安装包?
QQ Linux版 目前支持x64(x86_64、amd64)、arm64(aarch64)、mips64(mips64el)三种架构,每种架构支持Debian系、红帽系、Arch Linux系、其它发行版中的一种或几种(未来可能继续扩充)。每一次发布均会提供架构和发行版的若干种组合支持的安装包,可按下面所述的规则进行选择。
每一个安装包会按照形如如下的格式命名:
1 |
|
-
选择架构:
根据你所使用的机器硬件架构选择相应的兼容架构类型(可通过uname -a查看)x64(x86_64、amd64)、arm64(aarch64)、mips64(mips64el)
-
根据你所使用的linux发行版选择格式:
后缀名 安装包管理器 支持发行版 .rpm rpm/yum 红帽系(如redhat、fedora、centos) .deb dpkg/apt debian系(如debian、ubuntu、银河麒麟) .pkg.tar.xz pacman arch系(如Arch Linux、manjaro) .sh bash 任意支持bash的发行版
如何安装?
当前版本的QQ Linux版依赖gtk2.0,安装QQ Linux版前请确保你的系统已安装gtk2.0。以下是一些使用命令行安装gtk2.0的例子:
1 |
|
请参考你所使用的系统安装包管理器的使用说明来安装你所选择的QQ Linux版安装程序,注意你需要root权限才能完成安装。在一些发行版中你可以通过双击文件管理器中的安装程序完成安装。以下是一些使用命令行来安装的例子:
1 |
|
如果版本更新后登录出现闪退情况,请删除 ~/.config/tencent-qq/#你的QQ号#
目录后重新登录。
默认安装位置:/opt/QQ
如何卸载?
请尽量使用你安装时使用的对应方式来卸载QQ Linux版(参考你所使用的系统安装包管理器说明)。同样需要root权限才能完成卸载。以下是一些例子:
1 |
|
更新
下载最新版的安装包,如.deb
,双击安装即可覆盖。
Texlive
安装配置
-
获取Texlive的iso镜像文件。可以访问以下网站下载texlive的iso文件:
-
安装Texlive。
-
为了使用图形化界面进行安装texlive,需要安装perl-tk:
1
2sudo apt-get install perl-tk
sudo apt install tk -
挂载iso镜像文件:
1
2
3
4
5
6# 进入到你下载好的iso文件所在目录下
sudo mount -o loop texlive2023-20230313.iso /mnt # 将iso文件挂载(解压?)到mnt文件夹下,要挂载到哪个文件夹可以自己指定
cd /mnt # 进入到到挂载后的文件夹下,才会找到install.tl文件
sudo ./install-tl -gui # 执行install.tl这个文件,-gui使用图形界面开始安装
# 如果是命令行安装根据提示,输入i进行安装
# 安装完成,界面输出:Welcome to Tex Live!报错:mount: /mnt: WARNING: device write-protected, mounted read-only.
解决:需要挂载的文件夹,以及挂载到的文件夹都要全部关闭。
-
-
环境配置。
1
2
3
4
5
6
7
8sudo gedit ~/.bashrc # sudo gedit ~/.zshrc
# 写入
# 依据实际安装路径
# 根据操作系统位数不同,64位的是x86_64-linux,如果是32位的则是 i386-linux
export PATH=/usr/local/texlive/2023/bin/x86_64-linux:$PATH
export MANPATH=/usr/local/texlive/2023/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2023/texmf-dist/doc/info:$INFOPATH
source ~/.bashrc # source ~/.zshrc -
测试是否安装成功。
1
tex --version # tex -v
如果返回的结果是
command not found
而非版本和版权信息,或者显示了旧版本的信息,很有可能是因为你没有把正确的bin子目录添加到PATH中。 -
安装完成后卸载挂载的文件不让它占用空间 (mnt文件夹指的是挂载镜像文件的文件夹)。
1
sudo umount /mnt
-
更新字体信息。
1
2
3sudo cp /usr/local/texlive/2023/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
cd /etc/fonts/conf.d/
sudo fc-cache -fsv # 执行失败就再执行此命令一次 -
更新配置源到清华大学。
1
sudo tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet
此步如果出现 sudo;找不到命令 tlmgr,意味着执行时环境变量不对:
-
尝试:
1
sudo env PATH=$PATH tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet
如果还不行,继续尝试:
-
请打开
/etc/sudoers
,将Defaults env_reset
改为Defaults !env_reset
。1
2sudo gedit /etc/sudoers
# 将Defaults env_reset改为Defaults !env_reset -
sudo gedit ~/.bashrc # sudo gedit ~/.zshrc # 写入 alias sudo='sudo env PATH=$PATH' source ~/.bashrc # source ~/.zshrc
1
2
3
4. ```bash
sudo tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet
-
-
更新宏包。
1
2sudo tlmgr update --self --all
# sudo env PATH=$PATH tlmgr update --self --all -
为 Context 更新缓存。
1
context --generate
-
把windows下的字体拷贝过来,这个中文字体种类就比较多了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19# 创建一个winfonts文件夹用于存放所有字体
sudo mkdir /usr/share/fonts/winfonts
# 将字体从Fonts文件中拷贝到winfonts中
sudo cp ~/Fonts/* /usr/share/fonts/winfonts/
# 进入到字体文件夹
cd /usr/share/fonts/winfonts/
# 修改字体访问权限
sudo chmod 744 *
# 回到主目录
cd ~
# 更新字体信息,使其生效
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv至此更多的字体都设置到Ubuntu系统中了,并且可以使用了。
可通过
fc-list :lang=zh-cn
查看中文字体及字体在系统中的具体名字。如果有需要使用自定义的字体,方法也是重走第二中方案即可。例如:我想使用思源黑体,将下载好的字体文件放到winfonts文件夹下,修改权限,更新字体信息,就可以了。
测试
-
新建测试文件夹,在此文件夹下打开终端,输入:
1
touch main.tex
新建一个
.tex
文件。 -
用编辑器打开这个文件,在里面写入代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16\documentclass{ctexart}
\usepackage{amsmath}
\title{Welcome to \LaTeX}
\author{ljguo}
\date{\today}
\begin{document}
\maketitle
hello \LaTeX{}!
你好 \LaTeX{}!
这是勾股定理
\[
a^{2}+b^{2}=c^{2}
\]
\end{document} -
保存,然后命令行执行:
1
xelatex main.tex
-
文件下新增
main.pdf
文件及main.aux
、main.log
。
提示
-
在文档中使用新配置的中文字体。例如我想在文档中使用新配置的思源黑体:
1
2
3
4
5
6
7
8\documentclass{ctexart}
\setCJKfamilyfont{syht}{Source Han Sans CN}
\newcommand{\siyuanheiti}{\CJKfamily{syht}}
\begin{document}
{\siyuanheiti 这是用思源黑体写的内容}
\end{document}值得注意的是对于字体设定的这个语法,
1
2\setCJKfamilyfont{syht}{Source Han Sans CN}
\newcommand{\siyuanheiti}{\CJKfamily{syht}}可以在
ctex-xecjk-winfonts.def
文件里添加设定,在文档中直接使用即可,就不用每次都在文档中对字体进行设定了。
参考链接
TeXstudio
概述
编辑器 | *.tex 专用 |
跨平台 | 免费软件 |
---|---|---|---|
Visual Studio Code | × | √ | √ |
Sublime Text | × | √ | × |
TeXstudio | √ | √ | √ |
WinEdt | √ | × | × |
TeXpad | √ | × | × |
表格摘自:说一说 TeXstudio
配置
-
选项-设置,勾选左下角的“显示高级选项”。
-
选项-设置-构建:若写中文论文,则需修改默认编译器为XelaTeX;若为英文,则用PdfLaTex。
-
TeX系的文档不建议直接在文档中使用 Tab(\t)作为缩进,建议使用两个空格作为缩进。
- 选项-设置-编辑器:勾选“将缩进替换为空格”和“将文本中的制表符(Tab)替换为空格”。
- 选项-设置-高级编辑器-外观界面-Tab宽度。
-
(可选)内嵌PDF和源码同步。
- 在生成的内嵌PDF窗口右上角点击“窗口查看器”图标。
- 在新生成的窗口点击:配置-“滚动跟随光标”和“光标跟随滚动”。
- 如果想合并窗口,则点击:配置-查看-窗口/内嵌。
-
(可选)实时预览:选项-设置-内置PDF查看器-勾选“有变更时自动重新编译文档”。
使用
更新(Windows)
TeXstudio更新之前需要先卸载旧版。在卸载之前,可以先复制一份用户配置以免配置文件丢失。对于Windows系统,配置文件一般在 C:\Users\用户名\AppData\Roaming\texstudio
路径下。*nix系统类似。
ToDesk
下载安装
(覆盖旧版安装后,临时密码将会变更)
1 |
|
默认安装位置:/opt/todesk
VSCode
我可以在旧版 Linux 发行版上运行 VS Code Server 吗?
从 VS Code 版本 1.86.1(2024 年 1 月)开始,提高了远程服务器构建工具链的最低要求。
VS Code 分发的预构建服务器与基于 [glibc](# 升级GLIBC_) 2.28 或更高版本的 Linux 发行版兼容,例如 Debian 10、RHEL 8 或 Ubuntu 20.04。在 2025 年 2 月之前,VS Code 仍允许用户连接到 VS Code 不支持的操作系统(不提供 glibc >= 2.28 和 libstdc++ >= 3.4.25 的操作系统)。
这让您和您的公司有时间迁移到较新的 Linux 发行版。当您连接到 VS Code 不支持的操作系统版本时,VS Code 将显示对话框和横幅消息。
由于 Copilot Chat 因其深度 UI 集成而与 VS Code 同步发布,因此 Copilot Chat 的每个新版本仅与最新版本的 VS Code 兼容。
这意味着,如果您使用的是旧版本的 VS Code,您将无法使用最新的 Copilot Chat。
只有最新的 Copilot Chat 版本才会使用 Copilot 服务提供的最新模型,因为即使是较小的模型升级也需要在扩展中进行及时更改和修复。旧版本的 Copilot Chat 仍将使用最新版本的 Copilot 完成信息。
下载安装
在下载链接下载*.deb
文件后,双击安装。
我可以在旧版 Linux 发行版上运行 VS Code 吗?
从 VS Code 版本 1.86.1(2024 年 1 月)开始,VS Code 桌面仅与基于 glibc 2.28 或更高版本的 Linux 发行版兼容,例如 Debian 10、RHEL 8 或 Ubuntu 20.04。
如果您无法升级 Linux 发行版,建议的替代方案是使用我们的Web 客户端。如果您想使用桌面版本,则可以从此处下载 VS Code 版本 1.85。根据您的平台,请确保禁用更新以保留该版本。一个好的建议是使用便携式模式进行安装。
升级
如果你的VSCode已经通过*.deb
安装过了,只需要输入两行代码即可更新已经安装的VSCode:
1 |
|
配置
通用配置
打开
settings.json
:
- 使用
Ctrl+,
或者点击左下角齿轮图标并选择设置。
- 在界面右上角点击“打开设置(json)”图标。
- 在“文本编辑器”中找到
settings.json
。- 使用
Ctrl+Shift+P
或者点击左下角齿轮图标,选择命令面板。然后输入settings.json
来搜索,点击Preferences: Open User Settings (JSON)
即可进入用户设置settings.json
文件。
修改
Preferences: Open User Settings (JSON)
:settings.json
,将会覆盖掉Preferences: Open Default Settings (JSON)
:defaultSettings.json
。defaultSettings.json
里配置了所有可自定义的默认选项。
-
字体大小:
- 设置(
Ctrl+,
)-窗口-Zoom Level - 设置(
Ctrl+,
)-文本编辑器-字体-Font Size
- 设置(
-
行间距和字体粗细:
-
打开
settings.json
。 -
写入:
1
2"editor.lineHeight": 30 // 控制行高
"editor.fontWeight": 800 // 控制字体粗细 -
保存,完成。
-
-
命令行缓冲区(终端)中保留的最大行数:设置-功能-终端(Terminal)-Scrollback:10000
-
配色:
1
2
3
4"workbench.colorCustomizations": {
"editor.selectionHighlightBackground": "#ec1f08", // 具有与所选项相关内容的区域的颜色。
"editor.lineHighlightBackground": "#000000" // 光标所在行高亮内容的背景颜色。
}, -
平滑光标:设置-文本编辑器-光标-Cursor Smooth Caret Animation
-
标签页换行:设置-工作台-编辑管理-Wrap Tabs
-
文件树缩进:设置-Workbench › Tree: Indent
-
淡化未使用的代码:设置:Editor: Show Unused
C++语言环境无效。
-
修改主题配色:
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"editor.tokenColorCustomizations": {
"[One Dark Pro Darker]": {
// [常用范围列表](https://binaryify.github.io/OneDark-Pro/#/?id=common-scope-list)
"textMateRules": [
{
"scope": ["variable.other.local"], // (C++)局部变量,适用于设置使用C/C++插件的静态分析
"settings": {
"foreground": "#BBBBBB"
}
},
{
"scope": ["variable.parameter"], // 形参
"settings": {
"foreground": "#D19A66"
}
}
]
}
},
"editor.semanticTokenColorCustomizations": {
"enabled": true, // enable for all themes
"rules": {
"variable.functionScope": { // (C++)局部变量,适用于设置了使用clangd插件的静态分析
"foreground": "#BBBBBB",
// "fontStyle": "bold"
},
}
},C/C++插件与clangd插件对变量类型的定义有所不同,issuse。
可以将光标放置在变量上,按Ctrl+Shift+P,输入“Developer: Inspect Editor Tokens and Scopes”查看“semantic token type”和“modifiers”。How To Customize Semantic Token Colorization With Visual Studio Code
一些对应关系:
- textMateRules/variable.other.global -> rules/variable.globalScope
- textMateRules/variable.other.local -> rules/variable.functionScope
- textMateRules/keyword.operator.new -> textMateRules/keyword.operator.{new,delete}.cpp
- textMateRules/entity.name.function.operator.member -> textMateRules/{keyword.other.operator.overload,entity.name.operator}.cpp
- textMateRules/entity.name.function.member.static -> rules/function.static
-
显示空格:
- 设置:Editor: Render Whitespace: all
- 查看-外观-显示空格
-
自动换行:
1
2"editor.wordWrap": "bounded",
"editor.wordWrapColumn": 80, -
双击变量后高亮其它位置的该变量:
1
2
3"workbench.colorCustomizations": {
"editor.selectionHighlightBackground": "#ec1f08",
},好像同时会高亮其它包含该变量字符的变量,解决方法是
Ctrl+F
打开全词匹配(Alt+W
)。单击变量也会标注出其它位置的该变量(默认的?),但是是灰色的框,不明显。
-
光标所在行的颜色:
1
2
3"workbench.colorCustomizations": {
"editor.lineHighlightBackground": "#000000",
}, -
粘滞滚动,即显示上一级对应的代码:
1
"editor.stickyScroll.enabled": true,
-
在一定数量的等宽字符后显示垂直标尺:
1
2
3"editor.rulers": [
80
],进阶:
1
2
3
4
5"editor.rulers": [
{ "column": 80, "color": "#ff00ff" },
{ "column": 100, "color": "#00ff4c" },
{ "column": 120, "color": "#ff0000" },
], -
打开终端的路径为当前文件所在路径,而不是工作区的根目录:
1
"terminal.integrated.cwd": "${fileDirname}",
-
等等。
光标动画
-
关闭VSCode。
-
打开终端,执行命令:
1
2sudo chown -R $(whoami) "$(which code)"
sudo chown -R $(whoami) /usr/share/code详细说明见此处。
-
下载光标动画配置文件到
yourFolder
。详细说明见此处。文件内配置可自定义。
-
打开VSCode。
-
搜索并安装插件“Custom CSS and JS Loader”。
-
编辑用户配置文件:
1
2
3"vscode_custom_css.imports": [
"file:///yourFolder/index.js"
], -
打开快速命令窗口(Ctrl+Shift+P)并输入">Enable Custom CSS and JS"以应用设置。
如果提示“文件已损毁”,点击“不再提醒”即可。
-
完成。
更多动画,可见插件VSCode Animations。
卸载 Custom CSS and JS Loader: 先按
Ctrl+Shift+P
执行Disable Custom CSS and JS
,按弹窗提示重启 VSCode,最后再卸载该插件。(在插件主页禁用插件再手动重启无效)
插件配置
IntelliJ IDEA Keybindings
把VSCode的快捷键映射为JetBrains系列的IDE的快捷键配置。
Todo Tree
使用 Ctrl+Shift+P
或者点击左下角齿轮图标,选择命令面板。然后输入 settings.json
来搜索,点击Preferences: Open User Settings (JSON)
即可进入用户设置 settings.json
文件。
1 |
|
TODO
- Auto Hide: 当用户单击文本编辑器时,自动隐藏侧边栏和终端面板
- Comment Translate: 翻译插件
- CodeSnap / Polacode: 代码截图
- Codeium: 适用于您最喜欢的语言的免费 AI 代码加速插件
- colorize: 立即可视化 css/sass/less/postcss/stylus/XML... 文件中的 css 颜色
- Color Highlight: 突出显示代码中的 CSS 颜色
- Console Ninja: JavaScript console.log 输出和运行时错误就在代码旁边。
- Document This: 自动在 TypeScript 和 JavaScript 文件中生成详细的 JSDoc 注释
- ESLint / Prettier ESLint: 用于 JavaScript/TypeScript代码的语法检查和格式化
- GitLens — Git supercharged: Git增强
- koroFileHeader: 用于生成文件头部注释和函数注释的插件
- Live Server: 启动具有静态和动态页面实时重新加载功能的开发本地服务器
- Peacock: 巧妙地更改工作区的工作区颜色
- Prettier: 代码格式化,支持多种语言,包括 JavaScript、TypeScript、HTML、CSS 等
- Quokka: 一款用于快速 JavaScript / TypeScript 原型设计的开发人员生产力工具。当您键入时,运行时值会更新并显示在 IDE 中代码旁边。
- RegEx Snippets: 无需记住任何内容即可轻松插入流行的正则表达式代码
C++
CMake
1 |
|
-
取消自动CMake:
- 设置:Cmake: Configure On Open
- 设置:Cmake: Configure On Edit
-
build目录:设置:Cmake: Build Directory
1
2${workspaceFolder}/build // 默认
${workspaceFolder}/../build-vscode -
等等。
C/C++插件
实测发现,VSCode的“C/C++”插件包括静态代码分析(很重要)在内的各种功能不如“clangd”插件。因此,仅使用“C/C++”插件进行代码的构建,静态代码分析、代码补全等功能交给“clangd”插件。
1 |
|
-
设置:C_Cpp › Code Analysis: Run Automatically - ture
-
设置:C_Cpp › Code Analysis › Clang Tidy: Enabled - ture
-
设置:C_Cpp › Code Analysis: Update Delay - 1000
-
排除不必要的文件(夹)以加快分析速度:
-
设置:Explorer: Exclude Git Ignore
-
设置:Files: Exclude
-
设置:C_Cpp › Files: Exclude
-
设置:C_Cpp › Code Analysis: Exclude。示例:
1
2
3
4"C_Cpp.codeAnalysis.exclude": {
"**3rdparty/": true,
"**idea/": true
},
-
-
等。
clangd插件
先安装“C/C++”插件再安装“clangd”插件安装完成后,会提示发生冲突提示,请选择“Disable IntelliSense”。
编辑用户设置 settings.json
文件:
1 |
|
创建用户配置文件:
1 |
|
新建config.yaml
文件并写入以下内容:
1 |
|
CompileFlags
下增加和移除的几个选项是为了消除 Clangd 对 CUDA C++ 代码的误报错,具体见:多版本 CUDA 安装切换和 PyTorch 深度学习环境配置
如果配置完“clangd”插件后,插件工作不正常,可以卸载重装插件,让插件重新加载一遍试试。
C/C++插件与Clangd插件对变量类型的定义有所不同,可能会导致主题配色有问题,解决见[通用配置](# 通用配置)第9条。
参考链接:
格式化风格
你可以使用 Format Modified Lines 命令 (
editor.action.formatChanges
) 来格式化你修改过的代码行。这个命令只会格式化你自己新增或修改的代码,而不会格式化之前版本管理的内容。
如果为了[使用“clangd”插件](# clangd插件)而在VSCode中配置了
"C_Cpp.intelliSenseEngine": "disabled",
,那么下述步骤中无需执行配置“C/C++”插件的步骤,原因在步骤最后。
-
生成
.clang-format
文件:-
从可执行文件生成:
-
在VSCode中安装插件“C/C++”。
-
生成
.clang-format
文件:1
2
3cd ~/.vscode/extensions/ms-vscode.cpptools-xxx(版本号)-linux-x64/LLVM/bin
# Windows: cd C:\Users\<你的用户名>.vscode\extensions\ms-vscode.cpptools-xxx(版本号)-win32-x64\LLVM\bin\
.\clang-format.exe -style="llvm" -dump-config > .clang-format得到一个
.clang-format
文件。 -
用文本编辑器编辑这个文件,就可以修改格式化格式了。ClangFormat配置说明
-
(可选)将修改好后的
.clang-format
文件移动到项目根目录。
-
-
从CLion生成:
-
打开CLion,在设置-编辑器-代码样式-C/C++中配置好格式化样式。
-
鼠标左键单击CLion底部的ClangFormat,选择“从xxx查看 ClangFormat 选项”。
底部没有ClangFormat的话,可以尝试右键底部来添加。
- 通过“从代码样式创建
.clang-format
”选项得到的.clang-format
文件内容不全(是CLion一些默认的格式化设置没有录入到这里?)。 - 通过点击设置-编辑器-代码样式-方案:项目-右侧的三个点-导出-
.clang-format
文件得到的文件内容不全。
- 通过“从代码样式创建
-
在项目根目录(或者任一位置)新建文件
.clang-format
,保存上一步的文件内容。
-
-
-
(可选)
.clang-format
文件内容参考: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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227# ClangFormatConfigureSource: 'LLVM'
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveAssignments:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: true
AlignConsecutiveBitFields:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: false
AlignConsecutiveDeclarations:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: false
AlignConsecutiveMacros:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: false
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments:
Kind: Always
OverEmptyLines: 0
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
AttributeMacros:
- __capability
BinPackArguments: true
BinPackParameters: true
BitFieldColonSpacing: Both
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterExternBlock: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakAfterAttributes: Never
BreakAfterJavaFieldAnnotations: false
BreakArrays: true
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: Always
BreakBeforeBraces: Attach
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IfMacros:
- KJ_IF_MAYBE
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
SortPriority: 0
CaseSensitive: false
- Regex: '.*'
Priority: 1
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: '(Test)?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: false
IndentExternBlock: AfterExternBlock
IndentGotoLabels: true
IndentPPDirectives: None
IndentRequiresClause: true
IndentWidth: 4
IndentWrappedFunctionNames: false
InsertBraces: false
InsertNewlineAtEOF: false
InsertTrailingCommas: None
IntegerLiteralSeparator:
Binary: 0
BinaryMinDigits: 0
Decimal: 0
DecimalMinDigits: 0
Hex: 0
HexMinDigits: 0
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
LambdaBodyIndentation: Signature
LineEnding: DeriveLF
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PackConstructorInitializers: BinPack
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
PPIndentWidth: -1
QualifierAlignment: Leave
ReferenceAlignment: Pointer
ReflowComments: true
RemoveBracesLLVM: false
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SortIncludes: CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: LexicographicNumeric
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeJsonColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
AfterControlStatements: true
AfterForeachMacros: true
AfterFunctionDefinitionName: false
AfterFunctionDeclarationName: false
AfterIfMacros: true
AfterOverloadedOperator: false
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Latest
StatementAttributeLikeMacros:
- Q_EMIT
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 8
UseTab: Never
VerilogBreakBetweenInstancePorts: true
WhitespaceSensitiveMacros:
- BOOST_PP_STRINGIZE
- CF_SWIFT_NAME
- NS_SWIFT_NAME
- PP_STRINGIZE
- STRINGIZE
... -
VSCode: 打开设置(Ctrl + ,)-用户-文本编辑器-Default Formatter: C/C++ ms-vscode.cpptools
-
(可选)设置-文本编辑器-格式化
-
设置-扩展-C/C++-格式设置-“C_Cpp: Formatting”: clangFormat
-
设置-扩展-C/C++-格式设置-“C_Cpp: Clang_format_style”: file
或使用
file:<路径>/.clang-format
引用特定路径。当找不到用户自定义的
.clang-format
配置文件时,还有个备选方案:设置-扩展-C/C++-格式设置-“C_Cpp: Clang_format_fallback Style”: Visual Studio
-
(可选):
1
2
3
4"editor.formatOnPaste": true,
"editor.formatOnType": true,
"editor.formatOnSaveMode": "modificationsIfAvailable",
"bookmarks.useWorkaroundForFormatters": true, -
完成。
当为了[使用“clangd”插件](# clangd插件)而在VSCode中配置了
"C_Cpp.intelliSenseEngine": "disabled",
后,“C/C++”插件的格式化配置会失效,系统提示重新制定格式化程序:
1
2
3
"[cpp]": {
"editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd"
},这时,并不能指定
.clang-format
的路径,只能把该文件放在项目目录中。
在clangd中,
.clang-format
文件的路径是由clangd自动确定的,你不能直接在clangd的参数中指定.clang-format
文件的路径。当你在VS Code中格式化一个文件时,clangd会在文件的目录以及所有父目录中查找
.clang-format
文件,直到找到一个.clang-format
文件,或者到达文件系统的根目录。如果clangd找到了一个.clang-format
文件,它就会使用这个文件中的样式规则来格式化你的代码。如果clangd没有找到.clang-format
文件,它就会使用--fallback-style
参数指定的样式规则。因此,如果你想让clangd使用特定的
.clang-format
文件,你需要将这个文件放在你的代码文件的目录或任何父目录中。如果你想让所有的代码文件都使用同一个.clang-format
文件,你可以将这个文件放在你的工作区的根目录中。
在VS Code中,你可以通过查看设置来了解当前文件的格式化程序。但是,VS Code并没有直接的命令或设置可以查看当前文件被哪个格式化程序处理。
你可以在设置中搜索
"[文件类型]": {"editor.defaultFormatter": ...}
来查看特定文件类型的默认格式化程序。例如,如果你想查看JavaScript文件的默认格式化程序,你可以搜索"[javascript]": {"editor.defaultFormatter": ...}
。如果你想查看所有文件类型的默认格式化程序,你可以搜索
"editor.defaultFormatter"
。这些设置可能会被工作区设置或文件夹设置覆盖,所以你需要检查这些地方的设置。
另外,你可以通过执行Format Document With... (
editor.action.formatDocument.multiple
)命令来查看可用的格式化程序列表,这个列表中应该包含了当前文件的格式化程序。
参考链接:
Python
格式化风格
安装插件: Black Formatter
1 |
|
ROS
-
插件:
- ROS
- catkin-tools
-
设置Cmake路径:
- 打开设置(
Ctrl+,
)。 - 搜索
@ext:ms-vscode.cmake-tools
。 - 找到
Cmake: Build Directory
。 - 输入
${workspaceFolder}/../build-vscode
。
- 打开设置(
使用
微信
-
安装wine(需自行搜索)。
-
下载 微信 for Windows 的
*.exe
文件。 -
使用wine安装微信:
1
2cd yourfolder/
wine *.exe -
使用wine打开微信:
1
2
3# wine创建的C盘默认所在的路径是:~/.wine/drive_c/
# 微信默认的安装路径是:C:\Program Files\Tencent\WeChat
wine ~/.wine/drive_c/Program Files/Tencent/WeChat/WeChat.exe
Zotero
下载安装
插件
插件推荐
当前自己使用Zotero主要是为了在Linux系统下阅读英文文献。Linux、Ubuntu下英文文献翻译软件、工具推荐
README.txt里附有安装说明。
-
-
对于编辑-首选项-翻译-翻译服务:GPT-配置-温度参数的解释:
极富创造力的参数-temperature:介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定性。temperature 越高,文章内容随机性越强,创造力越好。
-
安装插件
- 下载最新版本(.xpi 文件)。注意,如果您使用 Firefox 作为浏览器,请右键单击
.xpi
并选择“另存为”。 - 在Zotero中,单击顶部菜单栏,然后单击
Tools-Addons
。 - 转到“扩展”页面,然后单击右上角的齿轮图标。
- 选择
Install Add-on from file
。 - 浏览到
.xpi
文件的下载位置并选择它。 - 通过单击扩展列表
restart now
,重新启动Zotero。
插件及其更新的
.xpi
源文件会备份在~/.zotero/zotero/xxx.default/extensions
目录下。
配置插件
编辑-首选项
使用
更新
更新Zotero
帮助-检查更新-自动更新。
报错:
1 |
|
解决:
1 |
|
如果不想在软件启动时看见这个报错,可以删除Zotero安装文件夹下的updates
文件夹。
报错:
1 |
|
解决:
您似乎正在以root用户身份运行Zotero。这是不安全的,可能阻止Zotero从用户帐户启动时无法正常运行。如果您想安装自动更新,请修改Zotero程序用户帐户可写的目录。
当我使用ls -l
命令查看Zotero安装目录下各文件(夹)的读写权限时,发现除updates
文件夹的所有者是当前账户外,其他的文件(夹)都是root账户。因此,我使用下面的命令将Zotero安装目录下各文件(夹)的读写权限的所有者统一设置为当前账户后,报错就解决了(把updates
文件夹的所有者升级为root账户也行?没试过)。
1 |
|
更新插件
工具-附加组件-右上角设置符号-Check for Updates
TODO
CLI(命令行界面)、GUI(图形用户界面)、TUI(基于文本的用户界面)、Terminal(终端)、Console(控制台)。
- bat工具是著名的 cat 程序的克隆,支持语法突出显示和 git 集成。
- bpy top:CLI。资源监视器,显示处理器、内存、磁盘、网络和进程的使用情况和统计信息。
- fzf: 命令行模糊查找器。适用于任何类型的列表;文件、命令历史记录、进程、主机名、书签、git 提交等。它实现了“模糊”匹配算法,因此您可以快速输入省略字符的模式,但仍然可以获得您想要的结果。
- lazygit:TUI。Lazygit 为 git 操作提供了可视化界面,使得仓库管理更加直观。
- pet:CLI。一个命令行片段管理器。它旨在帮助您记住并快速访问那些不经常使用但对工作流程至关重要的复杂命令。
- terminalizer:记录终端会话并将其导出为动画 GIF
- tmux:CLI。终端多路复用器,用于有效管理多个终端会话。
- Yazi:用 Rust 编写的基于异步 I/O 的超快终端文件管理器