📒 软件使用经验和技巧¶
好用的软件¶
类别 | macOS | Linux | Windows | Android |
---|---|---|---|---|
压缩工具 | Keka | Bandizip | ||
播放器 | IINA | VLC | PotPlayer | VLC |
窗口管理 | Rectangle | |||
终端 | Termius | Termius | Termius | Termius |
远程摄像头 | Iriun Webcam | |||
投屏 | scrcpy | |||
网络工具 | CellularZ 网络万用表 |
|||
文件管理 | Midnight Commander | |||
久坐提醒 | Time Out | Safe Eyes | Big Stretch Reminder | |
按键展示 | KeyCastr | YetAnotherKeyDisplayer/Kling | ||
连点器 | macos-auto-clicker | OP Auto Clicker |
Git¶
Quote
- 1 分钟上手 git:git - 简明指南
- 学习使用 GitHub:GitHub Quickstart | 中文版:GitHub 快速入门
- 深入理解 Git:Pro Git | 中文版
CRLF 问题¶
Quote
创建仓库时,就应当添加 .gitattributes
,强制所有人使用统一的换行符提交:
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text
# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
更换 Git 端口¶
某些情况下受网络限制无法访问服务器 22 端口,可以将 git://
链接改为 ssh://
链接,走其他端口,如下:
常用 commit 类型¶
类型 | 描述 |
---|---|
feat 功能 | 引入了新功能 |
fix 修复 | 修复了一个错误 |
chore 琐事 | 不涉及修复或功能的更改,不修改 src 或测试文件(例如更新依赖项) |
refactor 重构 | 重构代码,不修复错误也不添加功能 |
docs 文档 | 更新文档,例如 README 或其他 markdown 文件 |
style 风格 | 不影响代码含义的更改,可能与代码格式相关,例如空格、缺少分号等 |
test 测试 | 包括新的或更正以前的测试 |
perf 性能 | 性能改进 |
ci 持续集成 | 持续集成相关 |
build 生成 | 影响构建系统或外部依赖项的更改 |
revert 恢复 | 恢复以前的提交 |
编辑器¶
- 使用 EditorConfig 统一编辑器配置
VSCode¶
-
烦人的自动补全
在写程序代码时,自动补全能极大地提高效率,但在撰写文档过程中常常相反。比如在 Markdown 中开启代码建议,则常常会跳出前面出现过的句子等,按下 Enter 键就直接键入了,非常智障。但关闭代码建议后,自定义的用户代码片段也不会自动跳出。最好的解决方法是:指定 Tab 键为接受代码建议的按键。更多代码建议的信息,请参考 How to disable IntelliSense in VS Code for Markdown? - Stack Overflow。
-
标题栏
在 Linux 系统上安装 VSCode 可能会出现很厚的标题栏。在
settings.json
中设置即可隐藏系统自带标题栏。你还可以进一步隐藏菜单栏,设置
"window.menuBarVisibility"
即可,参考 vs code 界面去除菜单栏_window.menubarvisibility": "default",-CSDN 博客。 -
用户代码片段
可以在 VSCode 中配置用户代码片段,为常用的代码片段提供便捷的智能输入。Snippet Generator 是一个用户代码片段生成器。
-
tasks.json
:用于项目生成任务,参考官方文档 Tasks。Tasks 的目的是将各种自动化项目构建系统(如 Make 等),通过命令行聚合到 VSCode 中。
在 VSCode 中配置的一般顺序如下:首先在
tasks.json
中编写自己的 task,然后在命令面板中选择 Configure Default Build Task 设置某个 task 为默认选项,此后便可以使用 Ctrl+Shift+B 执行任务。tasks 示例
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc.exe 生成活动文件", "command": "C:\\mingw64\\bin\\gcc.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": "build", "detail": "调试器生成的任务。" } ] }
这是 VSCode 默认生成于 Windows 中的执行文件。还是比较容易读懂它的作用是什么的。为了可移植性,我将
command
更改为gcc
,经过测试在 Windows 和 Linux 上均可用。其他东西基本不需要动。 -
launch.json
:用于调试(执行编译好的文件),参考官方文档 Debug。VSCode 利用语言对应的扩展来支持调试。不同的调试器支持的配置也不同,以下以
gdb
调试器为例。launch 实例
{ "version": "0.2.0", "configurations": [ {//Windows 和 Linux 通用,gdb 调试 "name": "gdb", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "gdb", "setupCommands": [ { "description": "将反汇编风格设置为 Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ], "preLaunchTask": "build", } ] }
终端¶
Quote
Tmux¶
- 会话、窗口和窗格(sessions, windows and panes)
-
使用
/tmp
中的 socket 文件与服务端通信。服务端在后台运行,管理运行在 tmux 中的所有程序并跟踪它们的输出。 -
创建会话:
tmux new
-s
指定会话名称-n
指定窗口名称-d
创建会话而不附着-A
如果会话存在则附着command
最后可以附带需要在窗口中运行的命令- Example:
tmux new -n mytopwindow top
- 附着:
tmux attach
-t
指定会话的名称-d
使其他附着到该会话的客户端脱离
- 列出会话:
tmux ls
C-b :
打开内置命令行。
:kill-server
关闭服务端,结束所有会话。:neww
新的窗口-d
创建但不设为当前窗口-n
设置名字-t
设定序号command
最后跟执行的命令
:split-window
分割窗格-h
,-v
水平、垂直分割-d
不改变活动窗格-f
让新窗格占据整个横、纵向位置-
-b
将新窗格置于左、上方¶
使用 C-b ?
查看按键列表。