# MyIDE
**Repository Path**: mrbeardad/MyIDE
## Basic Information
- **Project Name**: MyIDE
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-03
- **Last Updated**: 2025-08-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MyIDE
✨ 一份帮助你配置并构建整个开发 Windows 环境的指南,包括桌面、终端、Shell 和编辑器





---
- [MyIDE](#myide)
- [桌面](#桌面)
- [桌面安装](#桌面安装)
- [桌面使用](#桌面使用)
- [终端](#终端)
- [终端安装](#终端安装)
- [终端使用](#终端使用)
- [PowerShell](#powershell)
- [PowerShell 安装](#powershell-安装)
- [PowerShell 使用](#powershell-使用)
- [VSCode-Neovim](#vscode-neovim)
## 桌面

### 桌面安装
- 首先打开设置界面安装中文语言包,并设置微软中文输入法,执行[xhup.reg](./ime/xhup.reg)安装小鹤双拼
- [TranslucentTB](https://apps.microsoft.com/detail/9PF4KZ2VN4W9) : 一个轻量级实用程序,使 Windows 任务栏在 Windows 10 和 Windows 11 上半透明/透明。
- [PowerToys](https://apps.microsoft.com/detail/XP89DCGQ3K6VLD) : 一组实用程序,供高级用户调整和简化他们的 Windows 体验,以提高生产力。这里列出了一些 [PowerToy Run 第三方插件](https://github.com/microsoft/PowerToys/blob/main/doc/thirdPartyRunPlugins.md)。
- [Sysinternals](https://apps.microsoft.com/detail/9p7knl5rwt25) : 一组 Sysinternals 实用程序,包括 Process Explorer、Process Monitor、Sysmon、Autoruns、ProcDump、所有 PsTools 等等。这是我的 [Process Explorer Column Set](./sysinternals/ProcessExplorerColumnSet.reg)。
- [PixPin](https://apps.microsoft.com/detail/xp89f3cgsrzhc7) : 拥有截图贴图相关的一系列功能,包括截图,长截图,截动图,贴图,OCR 等。
- [Nerd Font](https://www.nerdfonts.com/font-downloads) : 一系列带有大量图标的字体。我的选择是 [Source Code Pro](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/SourceCodePro)。
- 安装一款你喜欢的 [鼠标主题](https://zhutix.com/tag/cursors/)
- `Win`+`I` 打开设置面板看看有什么需要设置的
### 桌面使用
| 快捷键 | 描述 |
| ----------------- | ---------------- |
| `Win`+`E` | 文件管理器 |
| `Win`+`{num}` | 启动任务栏软件 |
| `Win`+`↑` | 最大化窗口 |
| `Win`+`↓` | 最小化窗口 |
| `Win`+`←` | 固定到左半屏 |
| `Win`+`→` | 固定到右半屏 |
| `Alt`+`Tab` | 切换窗口 |
| `Alt`+`F4` | 关闭窗口 |
| `Win`+`D` | 显示桌面 |
| `Win`+`,` | 预览桌面 |
| `Win`+`L` | 锁屏 |
| `Win`+`Ctrl`+`D` | 新建虚拟桌面 |
| `Win`+`Ctrl`+`→` | 切换右虚拟桌面 |
| `Win`+`Ctrl`+`←` | 切换左边虚拟桌面 |
| `Win`+`;` | Emoji |
| `Win`+`+` | 放大 |
| `Win`+`-` | 缩小 |
| `Win`+`Shift`+`?` | 快捷键帮助 |
## 终端

### 终端安装
- 安装 [Windows Terminal](https://apps.microsoft.com/detail/9N0DX20HK701)
- 打开 Windows Terminal 然后按 `Ctrl`+`Shift`+`,` 打开配置文件,这是我的[**settings.json**](./wt/settings.json) 你可以参考
> 小贴士:
>
> - 所有颜色主题都被调整了以适配系统浅色主题
> - 配置中的字体设置为`SauceCodePro Nerd Font`
### 终端使用
| 快捷键 | 描述 |
| ---------------------- | ------------------------------ |
| `Win`+`` ` `` | 下拉或收起终端 |
| `Ctrl`+`Shift`+`{num}` | 用第`{num}`个 profile 新建 Tab |
| `Ctrl`+`Shift`+`D` | 重复当前 Tab |
| `Ctrl`+`Shift`+`W` | 关闭 Tab |
| `Alt`+`Shift`+`S` | 水平切分 |
| `Alt`+`Shift`+`V` | 垂直切分 |
| `Alt`+`Shift`+`Z` | 缩放面板 |
| `Alt`+`Left` | 聚焦左边 |
| `Alt`+`Right` | 聚焦右边 |
| `Alt`+`Up` | 聚焦上边 |
| `Alt`+`Down` | 聚焦下边 |
| `MouseSelect` | 复制 |
| `Shift`+`MouseSelect` | 增量复制 |
| `Alt`+`MouseSelect` | 块区域复制 |
| `Ctrl`+`Shift`+`V` | 粘贴 |
| `Ctrl`+`Shift`+`F` | 搜索 |
## PowerShell

### PowerShell 安装
- 安装 [PowerShell](https://apps.microsoft.com/detail/9MZ1SNWT0N5D)
- 安装 [scoop-proxy-cn](https://github.com/lzwme/scoop-proxy-cn):一款 Windows 下好用的包管理器的国内镜像
- 安装必要工具和 PowerShell 模块
```ps1
# 必要安装
scoop install 7zip git # aria2
scoop install oh-my-posh zoxide lsd bat ripgrep fd fzf
Install-Module posh-git
Install-Module PSFzf
# 可选安装(推荐)
scoop install fastfetch cht tokei lazygit everything
cp .\bat\config ~\AppData\Roaming\bat\config
cp .\lazygit\config.yml ~\AppData\Local\lazygit\config.yml
~\scoop\apps\7zip\current\install-context.reg
~\scoop\apps\everything\current\install-context.reg
# 将 %USERPROFILE%\scoop\apps\git\current\user\bin 加到环境变量 PATH 通常挺有用
scoop install go
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct GOSUMDB=sum.golang.google.cn GOBIN=$HOME\go\bin
scoop install rustup
mkdir ~\.cargo
echo @"
[source.crates-io]
replace-with = 'aliyun'
[source.aliyun]
registry = "sparse+https://mirrors.aliyun.com/crates.io-index/"
"@ >> ~\.cargo\config
scoop install nodejs
npm config set registry https://registry.npmmirror.com
scoop install python
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
```
- 在 PowerShell 中执行`notepad $PROFILE`来更改配置文件,这是我的 [**profile.ps1**](./ps/Microsoft.PowerShell_profile.ps1) 你可以参考
- 复制主题文件 [base16_bear.omp.json](./powershell/base16_bear.omp.json) 到 `%USERPROFILE%\Documents\PowerShell\base16_bear.omp.json`
- 配置 `%USERPROFILE%\.gitconfig`
```toml
[user]
name = Your Name
email = username@email.com
[core]
editor = nvim
[diff]
tool = nvimdiff
```
- 配置 `%USERPROFILE%\.ssh\config`,如此你便可通过形如`git@github.com:user/repo`的 ssh url 来 push 或 pull github 仓库了。当然,你需要先将你自己的 ssh 公钥添加到 github
```txt
Host github.com
Hostname ssh.github.com
Port 443
User git
IdentitiesOnly yes
IdentityFile ~/.ssh/key.pem
```
> 有关 WSL 的配置在[这里](https://github.com/mrbeardad/MyIDE/tree/d0302ad521fb73f6d099e46bdc4a65ab0626d564?tab=readme-ov-file#wsl),WSL/Linux 的 dotfiles 仍在仓库中,你可以自行查看参考
### PowerShell 使用
| 快捷键 | 描述 |
| ---------- | --------------------------------------- |
| `Esc` | Vi 模式,按`v`可打开`$EDITOR`来编辑命令 |
| `Ctrl`+`A` | 行首 |
| `Ctrl`+`E` | 行尾 |
| `Ctrl`+`H` | 删除前一个字符 |
| `Ctrl`+`W` | 删除前一个字词 |
| `Ctrl`+`U` | 删除前面所有 |
| `Ctrl`+`K` | 删除后面所有 |
| `Ctrl`+`Z` | 撤销 |
| `Ctrl`+`Y` | 重做 |
| `Tab` | 补全 |
| `Ctrl`+`P` | 上条匹配当前输入的历史命令 |
| `Ctrl`+`N` | 下条匹配当前输入的历史命令 |
| `Ctrl`+`R` | 模糊搜索历史命令 |
| `Alt`+`A` | 模糊搜索历史命令参数 |
| `Ctrl`+`T` | 模糊搜索文件 |
| `Alt`+`C` | 模糊搜索目录并跳转 |
| 实用命令 | 描述 |
| ------------- | ----------------------------------------------------------- |
| `l` | 列出文件 (requrie lsd) |
| `tree` | 树状格式列出文件 (require lsd) |
| `z` | 模糊匹配并跳转目录 (require zoxide) |
| `zi` | 交互地模糊匹配并调整目录 (require zoxide) |
| `zoxide edit` | 手动调整目录调整优先级 |
| `tokei` | 项目代码统计 |
| `cht` | 搜索帮助信息 [cheat.sh](https://github.com/chubin/cheat.sh) |
| `px` | 设置代理 |
| `notify` | 系统通知弹窗, e.g. `notify "Title" "Body"` |
| Git Aliases | Git subcommand | Description |
| ----------- | -------------- | -------------------------------------------------------------------------------------------------------- |
| `gst` | `status` | Show all changes in workspace and index |
| `ga` | `add` | Update changes from workspace to index |
| `gaa` | `add` | Update all changes from workspace to index |
| `gau` | `add` | Update all changes from workspace to index exclude untracked files |
| `gcln` | `clean` | Clean all untracked files |
| `grs` | `restore` | Restore workspace from index **(default)** or a commit |
| `gstl` | `stash` | Show stashes |
| `gsta` | `stash` | Stash all changes in workspace and index |
| `gstp` | `stash` | Restore the changes from stash and delete it **(default last)** |
| `gstaa` | `stash` | Restore the changes from stash **(default last)** |
| `gstd` | `stash` | Delete stash **(default last)** |
| `gc` | `commit` | Add a new commit from index |
| `gc!` | `commit` | Add a new commit base on grandparent commit and move HEAD to it (like overwrite but keep history commit) |
| `glg` | `log` | Show commit and its ancestry, revision form like `HEAD^` |
| `grlg` | `reflog` | Show commits of HEAD history, revision form like `@{1}` |
| `gd` | `diff` | Show changes **(default between workspace and index)** |
| `gdt` | `difftool` | Show changes **(default between workspace and index)** by `nvim` |
| `gmt` | `mergetool` | Resolve conflicts by `nvim`, or you can use `gco --ours` or `gco --theirs` |
| `gm` | `merge` | Merge a commit to HEAD, and do not allow fast forward |
| `gmc` | `merge` | Continue merge |
| `gms` | `merge` | Skip current patch and continue merge |
| `gma` | `merge` | Abort merge |
| `grb` | `rebase` | Rebase HEAD **(default)** or commit onto a commit |
| `grbc` | `rebase` | Continue rebase |
| `grbs` | `rebase` | Skip current patch and continue rebase |
| `grba` | `rebase` | Abort rebase |
| `gcp` | `cherry-pick` | Apply change in a commit to HEAD |
| `gcpc` | `cherry-pick` | Continue cherry pick |
| `gcps` | `cherry-pick` | Skip current patch and continue cherry pick |
| `gcpa` | `cherry-pick` | Abort cherry pick |
| `grv` | `revert` | Revert a commit to HEAD |
| `grvc` | `revert` | Continue revert |
| `grvs` | `revert` | Skip current patch and continue revert |
| `grva` | `revert` | Abort revert |
| `grh` | `reset` | Reset HEAD to a commit and keep all the changes in workspace and index |
| `grhh` | `reset` | Reset HEAD to a commit and do not keep the changes |
| `gbl` | `branch` | Show branches |
| `gb` | `branch` | Add new branch at HEAD **(default)** or commit |
| `gcb` | `checkout` | Add new branch at HEAD **(default)** or commit and checkout it |
| `gcb!` | `checkout` | Add new branch at HEAD **(default)** or commit (overwrite exist) and checkout it |
| `gbu` | `branch` | Set upstream of HEAD |
| `gbrn` | `branch` | Rename branch at HEAD **(default)** or commit |
| `gbrn!` | `branch` | Rename branch at HEAD **(default)** or commit (overwrite exist) |
| `gbd` | `branch` | Delete merged branch |
| `gbd!` | `branch` | Delete branch even if not merged |
| `gco` | `checkout` | Checkout target commit |
| `gcor` | `checkout` | Checkout target commit recursively |
| `gr` | `remote` | Remote |
| `grl` | `remote` | List remotes |
| `gra` | `remote` | Add remote |
| `grrn` | `remote` | Rename remote |
| `gru` | `remote` | Set thr url of remote |
| `grd` | `remote` | Delete remote |
| `gf` | `fetch` | Fetch remotes |
| `gl` | `pull` | Pull remotes and rebase, and automatically stash push and pop before and after |
| `gp` | `push` | Push a ref to remote |
| `gp!` | `push` | Push a ref to remote (`--force-with-lease`) |
| `gp!!` | `push` | Push a ref to remote (`--force`) |
| `gcl` | `clone` | Clone remote |
| `gclr` | `clone` | Clone remote recursively |
| `gsa` | `submodule` | Add a submodule |
| `gsu` | `submodule` | Init and update submodules to expected version. To modify submodule, |
| `gsd` | `submodule` | Delete a submodule |
| `lg` | | Open [Lazygit](https://github.com/jesseduffield/lazygit) |
| `gig` | | Create a .gitignore template for you, .e.g `gig c++,windows` |
> 小贴士:
>
> - 你无需记住所有 git 别名,使用你喜欢的 git ui 工具即可,比如 lazygit、fork 或 gitkraken 等。列出这么多 git 别名的目的在于告诉你哪些 git 基础操作是你应该知道的
> - 推荐 [这篇博文](https://nvie.com/posts/a-successful-git-branching-model/) 描述了 git flow
## VSCode-Neovim

1. 安装 Neovim 和 C/C++ 工具链
```ps1
scoop install neovim mingw-mstorsjo-llvm-ucrt cmake
```
2. 配置 Neovim
```ps1
# required
Move-Item $env:LOCALAPPDATA\nvim $env:LOCALAPPDATA\nvim.bak
# optional but recommended
Move-Item $env:LOCALAPPDATA\nvim-data $env:LOCALAPPDATA\nvim-data.bak
# clone
git clone https://github.com/mrbeardad/nvim $env:LOCALAPPDATA\nvim
# start and install plugins
nvim
```
3. 安装 [VSCode](https://apps.microsoft.com/detail/XP9KHM4BK9FZ7Q)
4. 配置 VSCode
1. 这是我的 [settings.json](vscode/settings.json) 和 [keybindings.json](vscode/keybindings.json),你可以复制到 `%APPDATA%\Code\User`
2. 这是我的 [lastSyncextensions.json](vscode/lastSyncextensions.json),你可以复制到 `%APPDATA%\Code\User\sync\extensions\`
5. **更多关于 vscode 和 neovim 的配置与使用,见[mrbeardad/nvim](https://github.com/mrbeardad/nvim)**