iTerm2 增强指南 - 安装 Oh My Zsh 和实用插件

iTerm2 是 macOS 上功能强大的终端模拟器,搭配 Oh My Zsh 和实用插件可以大幅提升终端使用体验。本指南将详细介绍如何安装和配置完整的 iTerm2 增强环境。

一、环境准备

1.1 检查系统环境

# 检查当前 shell
echo $SHELL

# 检查是否已安装 Homebrew(macOS 包管理器)
which brew

# 检查是否已安装 Git
which git

1.2 安装 Homebrew(如果没有安装)

# 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Read more

nvm usage

Usage:
nvm --help 显示帮助信息
nvm --version 打印出安装的nvm版本
nvm install [-s] <version> 从源代码下载并安装 <version>, [-s]。 如果可用,使用 .nvmrc
--reinstall-packages-from=<version> 安装时,重新安装安装在 <node|iojs|node version number> 中的包
--lts 安装时,只选择 LTS(长期支持)版本
--lts=<LTS name> 安装时,仅从特定 LTS 行的版本中选择
--skip-default-packages 安装时,跳过默认包文件(如果存在)
--latest-npm 安装后,尝试升级到给定节点版本上的最新工作 npm
--no-progress 禁用任何下载的进度条
nvm uninstall <version> 卸载一个版本
nvm uninstall --lts 使用自动 LTS(长期支持)别名“lts/*”(如果可用)进行卸载。
nvm uninstall --lts=<LTS name> 使用提供的 LTS 行的自动别名(如果可用)进行卸载。
nvm use [--silent] <version> 修改 PATH 以使用 <version>。 如果可用,使用 .nvmrc
--lts 使用自动 LTS(长期支持)别名“lts/*”(如果可用)。
--lts=<LTS name> 为提供的 LTS 行使用自动别名(如果可用)。
nvm exec [--silent] <version> [<command>] 在 <version> 上运行 <command>。 如果可用,使用 .nvmrc
--lts 使用自动 LTS(长期支持)别名“lts/*”(如果可用)。
--lts=<LTS name> 为提供的 LTS 行使用自动别名(如果可用)。
nvm run [--silent] <version> [<args>] 在 <version> 上以 <args> 作为参数运行 `node`。 如果可用,使用 .nvmrc
--lts 使用自动 LTS(长期支持)别名“lts/*”(如果可用)。
--lts=<LTS name> 为提供的 LTS 行使用自动别名(如果可用)。
nvm current 显示当前激活的Node版本
nvm ls [<version>] 列出已安装的版本,匹配给定的 <version>(如果提供)
--no-colors 抑制彩色输出
--no-alias 抑制 `nvm alias` 输出
nvm ls-remote [<version>] 列出可用于安装的远程版本,匹配给定的 <version>(如果提供)
--lts 列出时,只显示 LTS(长期支持)版本
--lts=<LTS name> 列出时,仅显示特定 LTS 行的版本
--no-colors 抑制彩色输出
nvm version <version> 将给定的描述解析为单个本地版本
nvm version-remote <version> 将给定的描述解析为单个远程版本
--lts 列出时,仅选择 LTS(长期支持)版本
--lts=<LTS name> 列出时,仅从特定 LTS 行的版本中选择
nvm deactivate 撤消 `nvm` 对当前 shell 的影响
nvm alias [<pattern>] 显示所有以 <pattern> 开头的别名
--no-colors 抑制彩色输出
nvm alias <name> <version> 设置一个名为 <name> 的别名指向 <version>
nvm unalias <name> 删除名为 <name> 的别名
nvm install-latest-npm 尝试在当前节点版本上升级到最新的工作“npm”
nvm reinstall-packages <version> 将 <version> 中包含的全局 `npm` 包重新安装到当前版本
nvm unload 从 shell 中卸载 `nvm`
nvm which [current | <version>] 显示已安装节点版本的路径。 如果可用,使用 .nvmrc
nvm cache dir 显示 nvm 缓存目录的路径
nvm cache clear 为 nvm 清空缓存目录

Example:
nvm install 8.0.0 安装特定版本号
nvm use 8.0 使用最新的 8.0.x 版本
nvm run 6.10.3 app.js 使用节点 6.10.3 运行 app.js
nvm exec 4.8.3 node app.js 使用指向节点 4.8.3 的路径运行 `node app.js`
nvm alias default 8.1.0 在 shell 上设置默认节点版本
nvm alias default node 始终默认为 shell 上的最新可用节点版本
nvm install node --reinstall-packages-from=node 安装最新版本,并从当前版本中重新安装包和全局模块(升级到最新版本并保留已安装的包和全局模块)

Note:
移除、删除或卸载 nvm - 只需移除 `$NVM_DIR` 文件夹(通常为 `~/.nvm`)
Read more

Git基础

创建存储库

# 创建一个新的本地存储库
$ git init [项目名称]

# 克隆存储库
$ git clone <git 仓库 url 地址>

# 将存储库克隆到指定目录
$ git clone <git 仓库 url 地址> <我的文件夹>
Read more

homebrew依赖关系

Basics:
brew ls 列出所有已安装的包
brew leaves 列出不依赖于另一个已安装包的已安装包
brew deps --installed --tree 显示所有包的依赖关系
brew deps <package> 显示<package>的依赖包
brew uses <package> --installed 显示<package>被哪些包依赖
brew info <package> 显示<package的信息

brew uninstall <package> 卸载<package>
brew autoremove 移除所有未使用的依赖项

brew-graph:
brew tap martido/homebrew-graph 安装brew-graph
brew install graphviz 安装graphviz
brew graph --installed | dot -Tpng -ograph.png dot格式
brew graph --installed | fdp -Tpng -ograph.png fdp格式

--highlight-leaves
--reduce

Regular Expressions 正则表达式语法

普通字符

什么叫普通字符?

当我们写a的时候,我们指的就是a;当我们写的时候,我们指的就是

'hello 😀 regex'.match(/😀/);
// ["😀", index: 6, input: "hello 😀 regex", groups: undefined]
Read more

Git飞行规则(Flight Rules)

编辑提交(editting commits)

我刚才提交了什么?

如果你用 git commit -a 提交了一次变化(changes),而你又不确定到底这次提交了哪些内容。 你就可以用下面的命令显示当前HEAD上的最近一次的提交(commit):

(main)$ git show

或者

$ git log -n1 -p
Read more

css3 flex弹性布局摘要

Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性

设为Flex布局以后,子元素的floatclearvertical-align属性将失效

.box{
display: -webkit-flex; /* -webkit */
display: flex;
flex-direction: row | row-reverse | column | column-reverse; /* row */
flex-wrap: nowrap | wrap | wrap-reverse; /* nowrap */
flex-flow: <flex-direction> || <flex-wrap>; /* row nowrap */
justify-content: flex-start | flex-end | center | space-between | space-around; /* flex-start */
align-items: flex-start | flex-end | center | baseline | stretch; /* stretch */
align-content: flex-start | flex-end | center | space-between | space-around | stretch; /* stretch */
}

.item {
order: <integer>; /* 0 */
flex-grow: <number>; /* 0 */
flex-shrink: <number>; /* 1 */
flex-basis: <length> | auto; /* auto */
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]; /* 0 1 auto */
align-self: auto | flex-start | flex-end | center | baseline | stretch; /* auto */
}
Read more