insorker / .dotfiles

personal dotfiles

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

insorker's dotfiles

什么是 dotfiles?正如字面意思,dotfiles 是一些以"."开头的隐藏文件,通常是用户程序的配置文件。由于不同的配置文件数量庞大、位置五花八门,导致迁移个人配置非常困难,所以统一管理和版本控制成了一个迫切的需求。

以下是我的系统配置,以及 dotfiles 管理方案。

OS shell
insorker Ubuntu(WSL) zsh

除了这篇 README 外,每个子文件夹下也有一份 README,请务必仔细阅读。

这份配置目前仅适合阅读借鉴(如果有值得借鉴的地方的话),不推荐直接使用,理由如下

  1. 这不是通用配置,是我的个人配置,里面不可避免的存在我个人的使用习惯和喜好

  2. 文档确实存在不完善的地方,每次对文档的更新可能都要等到我装新系统的那一天

当然如果你对上述理由并不介意,直接使用也是没有问题的

新系统配置

在配置新安装的系统前,需要换源、配置 git 和安装 zsh。

换源

这里使用清华源 Ubuntu

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.list
# 进入 vim
ggVGdi
粘贴对应镜像源
<Esc>:wq!
# 离开 vim
sudo apt update
sudo apt upgrade

配置 git

git config --global user.name "username"
git config --global user.email "email"
ssh-keygen -t rsa -C "email"
cat ~/.ssh/id_rsa.pub

然后将 ssh key 复制到 https://github.com/settings/keys 中,配置 github

完成后,在终端输入 ssh -T git@github.com,收到问题后请输入 yes 并回车。如果完成后收到 Hi ···,则配置成功。

安装zsh

sudo apt install zsh
chsh -s /bin/zsh

重启后可以看到 zsh 默认配置选项,选择 q 退出

基础配置

安装stow

sudo apt-get install stow

引入本项目配置

cd ~ && git clone --depth=1 git@github.com:insorker/.dotfiles.git && cd .dotfiles && ls

运行脚本安装配置

如果你不是新系统,注意!!!请确保家目录下不存在.dotfile中同名文件/文件夹/链接。如有冲突,请手动调整

e.g.

OK: ~/.dotfile/vim/ && ~/vim/

Bad: ~/.dotfile/vim/.vimrc && ~/.vimrc

Bad: ~/.dotfile/vim/.vimrc/ && ~/.vimrc

查看帮助

./link.sh -h
./unlink.sh -h

安装前务必运行一次】尝试运行命令但不安装/卸载,并显示详细信息

./link.sh -sv
./unlink.sh -sv

安装配置

./link.sh

删除配置

./unlink.sh

安装配置后请重启终端,部分报错属于正常现象,配置完成后不会出现报错。

后续配置请查阅各个文件夹下的 README.md

WSL 配置

基本使用

用 windows 打开:open [文件]

用 vscode 打开:code .

配置 Windows Terminal

主题

挑选喜欢的主题 Windows Terminal Themes,打开 settings.json 文件,粘贴至 schemes 中,最后在配置文件的外观中更换为对应主题

字体

挑选喜欢的字体 Nerd Font 并安装,在配置文件的外观中更换为对应字体

其他

将 settings.json 中的 copyOnSelect 改为 true

修改复制粘贴命令

proxy

不同的人会有不同的需求,我这里只贴出我的需求,详见镜像模式部分

即,在C:\Users\{username}下创建.wslconfig文件夹,加入这段配置

[experimental]
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

input latency

亲测 zsh-syntax-highlighting 会导致命令行输入卡顿,详见syntax highlighting is super slow in WSL2

解决方法就是

I solved this by excluding windows directories from $PATH by adding following in /etc/wsl.conf. Create the file if it doesn't exist

[interop]
appendWindowsPath = false

Then restart wsl with wsl --shutdown

当然这样就不能使用一些 windows 中的命令了,需要自行配置(已配置部分,如 code)。如果不介意卡顿的话,可以跳过这步。

进阶配置

无自定义安装需求的话可以跳过

关于 link.sh

输入命令./link.sh -h查看帮助

忽视部分配置

你可以在.dotfiles文件夹下创建.linkignore文件,并在其中声明了当前文件夹下你所不需要的配置文件夹名,如以下示例代码

cd ~/.dotfiles
touch .linkignore
echo "vim" >> .linkignore

同时,你也可以在 stow package (即.dotfiles下的子文件夹)中声明你不需要的配置。和上面不同的是,你需要使用 stow 的.stow-local-ignore文件,如以下示例代码

cd ~/.dotfiles/nvim
touch .stow-local-ignore
echo "README.md" >> .stow-local-ignore

在没有 .stow-local-ignore 的情况下,stow 会默认忽略一些文件如 README.md。新建 .stow-local-ignore 后,请按照需求将它们添加进配置中

特殊链接目录

~/.dotfiles/link.sh 的策略是将 stow package 直接链接到 $HOME 目录下。

如果有特殊目录需求(如,安装路径不是~,而是~/.config),可以参考 nvim 目录的配置。

其他软件

推荐安装的工具,不需要的自己删.zshrc中的相关配置

启用中

ccache

用途:加速gcc

安装:参考 man 手册中的 run modes 进行配置(已默认在 .zshrc 中配好)

nvm

用途:配置各种版本的 nodejs 和 npm

安装:使用LTS version,wsl连接不上的话,建议手动开一下梯子,不开梯子的话可以选择换源淘宝源

当然也可能是 curl 的问题,总之就是很逆天啦

使用:

nvm install --lts
nvm use --lts
cz-cli

用途:更好的 git commit

安装:npm install commitizen -g

使用:commitizen init cz-conventional-changelog --save-dev --save-exact

fzf

用途:命令行下的模糊搜索

安装:见官网,key bindings 已经配置好了(⚠️ Key bindings (CTRL-T / CTRL-R / ALT-C) and fuzzy auto-completion may not be enabled by default. Refer to the package documentation for more information. (e.g. apt-cache show fzf))

使用:

CTRL-T 查找目录下条目
CTRL-R 查找历史命令
unzip

用途:nvim 中要用

安装:sudo apt install unzip

build-essential

用途:为了 gcc

安装:sudo apt install build-essential

tldr

用途:too long didn't read,由于 chatgpt 的诞生,我个人觉得 RTFM 相比于 RTFAI 略显颓势

lazygit

用途:lazy git and cooperate with nvim.toggleterm

使用:快捷键详见keybindings,太多了以后整理

docker

用途:开发

安装:https://docs.docker.com/engine/install/ubuntu/

换源:阿里源:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

tree

安装:sudo apt install tree

rlwrap

用途:支持上下左右切换命令,比如用在 sqlite 的命令行中

安装:sudo apt install rlwrap

已弃用

bear

用途:配合vim clangd

安装:sudo apt-get install bear

使用:bear -- <your-build-command>

ctags

用途:配合 vim

使用:

ctags -R
ripgrep

用途:代替 grep

fd

用途:代替 find

安装:Make sure that $HOME/.local/bin is in your $PATH.

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ]; then
  PATH="$HOME/.local/bin:$PATH"
fi
sudo apt install fd-find
ln -s $(which fdfind) ~/.local/bin/fd

About

personal dotfiles


Languages

Language:Lua 53.3%Language:Shell 35.2%Language:Vim Script 11.5%