我的终端设置:iTerm2 + Zsh 🔥
航站楼
壳牌
作为我之前关于文本编辑器设置的帖子的后续,我想写一下我的开发设置的另一个关键部分——我的终端。与我相对较新的文本编辑器设置不同,我的终端配置已经伴随我多年——跨越了多个工作岗位,甚至更多的电脑。这是我每次买新电脑时首先要设置的东西。
航站楼
我使用 iTerm2 作为我的终端模拟器。它有一些非常酷的功能,比如搜索、自动完成和粘贴历史记录。话虽如此,对我来说,它最不可或缺的功能是它的分屏功能。
当我进行 Web 开发工作时,我通常会打开一些窗格用于服务器会话以及根据需要运行其他命令。当我需要同时运行多个进程时(就像我以前的工作一样),我很容易就会同时打开 10 个窗格。
您可以使用快捷方式cmd + d
水平创建新窗格,也cmd + shift + d
可以使用快捷方式垂直创建新窗格。
我确实对我使用的调色板做了一些调整——我认为最大的调整是我的默认字体是粉红色(最前面的颜色)。
除此之外,大部分“魔法”都来自我的 shell,Zsh!
壳牌
对于我的 shell(命令行使用的编程语言),我使用 Zsh 而不是 Bash。
使用 Zsh 有其优缺点,我发现最大的缺点是安装某些软件比较困难。一开始学习起来比较费劲,但随着时间的推移,我已经习惯了常见的障碍,遇到的问题也少了很多。考虑到这一点,我建议只向经验丰富的 Shell 用户推荐 Zsh!
话虽如此,对我来说,优点远大于缺点。Zsh 的 Tab 键补全功能比 Bash 好得多。它甚至还支持 Git 的 Tab 键补全!
Oh My Zsh是一个用于管理 Zsh 配置的框架,值得下载。当我提到 Zsh 时,很多功能实际上都是 Oh My Zsh 的一部分。
我的.zshrc
.bash_profile
Zsh 主要使用一个文件来保存你的自定义设置,而不是使用.zshrc
。默认情况下,该文件中有很多注释来解释不同的设置。下面我将介绍我的一些设置。
Zsh 有非常棒的主题,可以改变提示的外观。
我使用Spaceship,它能显示大量实用信息。例如,在我的博客目录(一个 Node 应用)中,会显示我的 git 分支、git 状态、软件包版本以及当前 Node 版本。此外,它还会显示上一条命令的运行时间,如果电池电量低,还会显示电池电量百分比!不同目录的信息略有不同,但这些信息如此易于访问确实很棒,尤其是与在 Bash 环境中创建类似内容的难度相比。
我总是会时不时地打开和关闭 Zsh 内置的自动更正功能。目前我已经打开了,但有时它确实让我很烦。
ENABLE_CORRECTION="true"
Zsh 的另一个优秀功能是插件。这些插件可以让 Zsh 更好地自动完成不同语言的输入,或者为 shell 添加额外的功能。我特别推荐这个git
插件——它能让你使用 git 的 Tab 键自动完成!我也非常喜欢zsh-syntax-highlighting
。它会用绿色突出显示有效命令,用红色突出显示无效命令,所以你甚至不需要测试命令就能知道它是否有效!
plugins=(git node bundler osx rake ruby python javascript bash zsh-syntax-highlighting)
之后,我有无聊的 PATH 和 git 配置,所以我将省略它们。
最后,我们来看看我的别名和自定义函数。我有个不太好用但又有点“罪恶感”的函数,叫做“acp”。“acp”负责添加、提交和推送我的代码,它看起来像这样:
function acp() {
git add .
git commit -m "$1"
git push
}
我使用它太多了,但当我处理个人项目时它确实加快了速度。
我设置了两个自定义别名:
alias groups="python ~/wdi/groupr/groupr.py"
alias zen="gatsby build && surge public/ zen-of-programming.com"
第一个会为我的学生创建随机小组,用于课堂活动和项目。Zen 会部署我的个人网站。是的,我只有两个自定义别名;不过,这只是因为 Oh My Zsh 内置了太多别名!
我特别依赖的一些内置命令是“...”,它是“cd ../..”的别名。你可以不断添加句点,在目录中不断切换。你也可以省略“cd”,直接输入文件名,从一个目录切换到另一个目录——“blog”相当于“cd blog”。git 还内置了其他一些别名,几乎可以完成你所能想到的任何操作。我也很喜欢please=sudo
,尽管我个人并不使用它!
我的电脑上还有一个额外的实用程序tree
(你可以用 安装在 Mac 上brew install tree
)。它能以一种非常方便的方式列出目录中的文件夹和文件。
不要成为陌生人!
如果你喜欢这篇文章并想阅读更多内容,我会每周发布一份新闻简报,其中包含我本周最喜欢的链接和最新文章。另外,请在推特上给我发一张你的终端设置图片!
文章来源:https://dev.to/aspittel/my-terminal-setup-iterm2--zsh--30lm