收集当前使用的工具及配置。其它相关 Blog:


工作/摸鱼环境:当前使用的是 MBP 14" M3 Pro + Dell 2720Q 4K 显示器。时常会命令行或 VSCode ssh 到 Lab 的 Ubuntu 下。之前有过一台 Alienware 17" R4 安装了 Windows&Ubuntu 双系统。Ubuntu 为主系统,Windows 只用来 Steam。由于需要搬家 + 感觉 MBP 买了不用有些浪费所以卖掉了。目前没有配台式的打算,游戏环境完全交给 Xbox。

系统配置

Dock

快速移入移出

1
defaults write com.apple.dock autohide-delay -float 0; killall Dock

Quick Look 插件

Yabai

macOS 下平铺式窗口管理器,搭配 skhd 热键守护进程 + sketchybar 状态栏实现桌面环境大改造。快速切换、排列窗口及桌面,告别鼠标和触控板。安装与使用前请完整阅读 wiki

一些系统设置(均在 System Preferences):

  • 防止桌面顺序自动更改:取消勾选 Mission Control -> Automatically rearragen Spaces based on most recent use
  • 减少动画效果:勾选 Accessibility -> Display -> Reduce Motion
  • 隐藏 Dock:勾选 Dock -> Automatically hide and show the Dock
  • 隐藏菜单栏:勾选 General -> Automatically hide and show the menu bar

Sketchybar

一款轻量状态栏,配合 Yabai 使用,显示当前桌面和窗口信息。安装和配置都比较简单

Skhd

简单的热键守护进程,快捷键触发命令,配合 Yabai 使用。配置文件规则简单,搭配 Karabiner 键盘映射软件可以实现更多定制化需求

Karabiner

macOS 键盘映射软件。添加 ~/.config/karabiner/assets/complex_modifications/custom.json 文件并编写规则即可。

  • 定义 键单独按下时为 Esc,与其它键组合时变为 Hyper
  • 与 h, j, k, l 组合变为上下左右,并兼容其它修饰键

Alfred

替换 Mac Spotlight,功能强大。可用来打开软件、文件、网页;搜索书签;查看剪贴板。另外可以添加 Workflows 扩展功能。推荐 Workflow:

自动备份设置(存在敏感信息):Preferences -> Advanced -> Set preferences folder

Lunar

根据 Macbook 的自带光传感器自动调节外接显示器亮度和对比度。界面好看,模式种类多,需要自己根据需要调节一些参数

Rime

全平台开源输入法,在 macOS 下为鼠须管。可定制化选项多,上手比较复杂,参考帮助文档。全部数据都在本地,设置和词库可以跨平台同步。

目前使用配置:rime-ice

Typora

Markdown 编辑器,平时用来做笔记,写 Blog。Typora 天下第一 🐶

主题推荐 Drakedyzj

Zotero

知识管理平台,主要用来整理文献。使用 Koofr 作为 WebDAV 同步免费版有 10G 空间

插件:

Mathpix Snip

截图数学公式转化 Mathjax 语法,准确率高,用 Typora 写学习笔记时非常方便

Surfingkeys

浏览器插件,键盘操作网页,按键模式与 Vim 类似。上手简单,功能齐全,支持自定义

VSCode

代码编辑器,插件生态全,迭代更新快,又是一个天下第一系列 🐶

一些推荐插件

  • Bookmarks:给行添加书签,方便跳转
  • Code GPT:GPT 侧栏
  • Everforest:主题
  • Git Graph:查看 Git Graph
  • GitHub Copilot:AI 代码补全,强到离谱
  • GitLens:在文件中显示 git 信息
  • Material Theme:主题,主要用它来显示文件图标
  • Paste-Indent:保持缩进格式粘贴
  • Path Intellisense:自动补全文件路径
  • Python Indent:解决一些 Python 自动缩进问题
  • Tabster:保存标签页至工作组
  • Todo Tree:高亮关键字

iTerm2

macOS 终端工具。一些设置:

  • 默认终端:iTerm2 -> Make iTerm2 Default Term
  • 快捷键:iTerm2 -> Preferences -> Keys -> Hotkey。设置为 ⌥Space
  • 字体问题:安装 Nerd Fonts,在 iTerm2 -> Preferences -> Profiles -> Text 中选择字体。推荐 14 pt CaskaydiaCove Nerd Font Regular
  • 下载 iTerm2 的配色方案。推荐 Snazzy, ayu

备份:

  • 自动备份设置:Preferences -> General -> Preferences -> Load preferences from a cutom folder or URL
  • 手动备份 Profiles:Preferences -> Profiles -> Other Actions -> Save all Profiles as JSON

技巧:

  • Tmux 集成:使用 tmux -CC,在 ssh 时尤其好用,比如滚动和复制粘贴
  • 分屏:⌘D 竖直分屏;⇧⌘D 水平分屏
  • 智能选中:双击选中,三击选中整行,四击智能选中
  • 输出文本触发器:Preferences -> Profiles -> Advanced -> Triggers 支持正则表达式
  • 命令完成时提示:⌥⌘A
  • 打开命令编辑器:⇧⌘.

Oh My Zsh

zsh 增强。开启一些自带插件:

  • git:关于 git 的各种 alias
  • autojump:安装 autojump 之后路径问题
  • extract:使用 x 傻瓜式解压文件

其它插件:

Neovim

新一代 Vim 命令行编辑器

新手使用 vimtutor 命令来快速熟悉,学习曲线陡峭。

安装 vim-plug 插件管理器;插件可以在 VimAwesome 中搜索

使用 coc.nvim 提供 LSP 等多种支持

Tmux

终端复用器,ssh 连接断开时会话依旧会保存。每个会话可以打开多个窗口,每个窗口可以划分窗格。

一个会话中的操作对服务器端和用户端同时可见,可以用来做演示。

  • 安装 tpm 插件管理器
  • 安装 Dracula Tmux 主题插件,定制化简单

vim + tmux + true_color + italic

  1. .tmux.conf 中加入

    set -g default-terminal tmux-256color
    set -ga terminal-overrides ",xterm-256color:RGB"
    
  2. 下载 tmux-256color 后终端执行 /usr/bin/tic -x tmux-256color 后会产生 ~/.terminfo 文件

PATH 路径问题

注意 Tmux 下的 PATH 值可能会发生变化

Ranger

命令行文件管理器,按键模式和 Vim 类似。支持自定义快捷键和命令。新手请阅读 wiki

Bug:快速预览有时会卡死,需要 ctrl+c 后继续。参考 issue 解决方法

Yadm

Yet Another Dotfiles Manager.

Dotfiles 管理工具。基本工作原理即是在 ~ 目录下建立一个 git 仓库,命令与 git 相同,模式与 git 相反,即默认不添加文件,需要手动 yadm add

命令行工具

  • autojump:目录快速跳转
  • batcat 增强版,输出高亮,多种语法
  • cheat:提示命令的用法,可以自己编写
  • fzf:模糊搜索,可以用来搜索文件、历史命令、等等
  • htop:交互式进程管理器
  • icdiff:支持高亮的比对工具,可以搭配 git 使用
  • lsdls 增强版
  • neofetch:显示系统信息,可定制选项多
  • nvidia-htopnvidia-smi 增强版,显示进程对应用户与 CPU,Memory 使用率
  • ripgrep:类似于 grep,使用正则表达式搜索文件内容
  • tree:树形显示文件夹结构
  • xclip (Linux):复制文件内容至剪切板,Mac 自带 pbcopy

个人记录

如何将个人生活数字化

  • 时间记录:使用 Toggl 手动记录。经常忘记但好像没什么好方法

  • 影视记录:Infuse 可以将观影记录同步至 Trakt。其它观看则在 Trakt 手动记录。同时所有影视标题手动加入 Notion,且调用 Notion API 自动搜索豆瓣和 TMDB 数据并填入

  • 书籍记录:使用微信读书,如果找不到书籍则自己寻找并上传。由于读书频率不高,因此都在 Notion 手动记录(也是因为没有一个类似 TMDB 的书籍网站可以爬数据)

  • 音乐记录:使用 Apple Music,如果歌曲不存在则从其它地方下载并上传。

  • 播客记录:使用 Pocket Cast

  • 个人学习笔记:本地写 markdown 文件,同步至 Github 自动发布静态网页。搭建参照 Readme

  • 论文记录:使用 Zotero + Notion

  • 运动记录:Apple Watch 记录。主要攀岩,使用 Redpoint,其它则用自带训练

  • 其它记录:日记、学过的东西、有用的工具、购买的物品等则手动记录至 Notion

系统相关

Win & Ubuntu 双系统

Win 安装 Ubuntu

进入 Win 下控制面板中的电源选项关闭快速启动。

使用磁盘管理工具在 Win 下将磁盘压缩出一块可用空间,100 GB 左右。如果硬盘为动态磁盘,需先使用傲梅分区助手将磁盘转化为基本磁盘

在 Ubuntu 官网下载安装文件。按照官网教程制作装机 U 盘。

U 盘插入电脑,重启进入 BIOS 选择从 U 盘启动。按照安装步骤进行,安装类型页面选择与 Win 共存。

安装完成后,在 Software -> Additional Drivers 里安装 Nvidia 显卡驱动,如果未关闭 Secure Boot,则需要设置密码并重启,在界面中选择 Enroll Key 并输入密码即可。

网上大多数教程还是以 Legacy 模式安装,关闭 Secure Boot,手动分区,用软件制作引导。而目前的版本完全不需要这么麻烦

WOL

首先查看主板是否支持 WOL

开启 WOL 服务:

  • Ubuntu:开启 BIOS 中 WOL (Wake on Lan)。安装 sudo apt-get install ethtool 并开启网卡的 WOL 服务 sudo ethtool -s eth0 wol g
  • Mac:开启 Energy Saver -> Power Adapter -> Wake for Wi-Fi network access

发送 Magic Packet 以唤醒其它机器:

  • 安装 wakeonlan,使用 wakeonlan -i ip -p port macaddress

Tips

SSH With Tmux

使用 ssh NAME -t tmux new -A 可以在 ssh 时自动 attach 到 tmux session,如果没有则自动创建

History 增加时间显示

.zshrc 中添加 HIST_STAMPS="yyyy-mm-dd"

Mac System Copy

pbcopy 只能够复制文本内容,如果达到系统复制的效果可以将下列函数加入 .zshrc

1
syscp() {osascript -e{'on run{a}','set the clipboard to posix file a',end} "$(readlink -f -- "$1")"}

通过 syscp FILE 来复制文件,注意只能复制单个文件