十年前,我开始了我的第一项工作,要求我使用Linux作为笔记本电脑的操作系统。 如果我愿意,可以给我提供各种变体,包括Gentoo,但是由于我过去曾短暂使用过Ubuntu,所以我选择了Ubuntu Lucid Lynx 10.04。
我的终端Konsole以Zenburn为主题,并显示了一个Bash提示,如下所示:
machinename ~ / path / to / folder $
如今,我在Mac上运行,特别是MacOS的卡塔利娜使用iTerm2与Zenburn主题和zsh的提示,如下所示:
machinename ~
/ path
/ to
/ folder
$
我认为经过十年几乎相同的提示后,我已经获得了curmudgeon的头衔,这仅是为了表明我的偏爱和习惯与当今酷孩子的所作所为背道而驰。
好像是为了证明我的观点,我想改变自己的航站楼以匹配我的旧航站楼。 在Mac上获得外观和感觉像Lucid Lynx的设置并非易事,需要花费一些时间。
我最近最大的变化是从Bash迁移到zsh并迁移了Bash黑客 。 但这只是主要转变之一。 亲爱的读者,我现在学到了许多新颖的课程给您。
Coreutils原谅国旗命令
从Ubuntu迁移到macOS并没有太大的转变,直到我开始认为自己失去了Unix-foo。 我会尝试运行诸如删除文件夹之类的基本操作,并被告知我错误地调用了rm
。
事实证明,GNU风格的实用程序可能看起来像BSD风格的实用程序,但是最大的可用性差异之一是标志顺序 。 未命名参数的列出顺序不对。 例如: rm
。
这是删除目录的常见GNU样式命令:
$ rm path / to / folder -rf
这与同一命令的BSD样式版本相反:
$
rm path
/ to
/ folder
-rf
rm: path
/ to
/ folder: is a directory
rm: -rf: No such
file or directory
我通过Homebrew安装Coreutils解决了这个问题。 这使GNU实用程序进入了macOS,并通过让我不必记住深深根植于我的肌肉记忆中的命令的标志顺序来使标志顺序更加宽容。
iTerm2功能强大
我不确定超级用户对默认终端感到满意的任何操作系统。 在macOS领域,我选择了iTerm2 ,它比基本OS的终端应用程序具有更大的灵活性。 我最喜欢的iTerm强大功能之一是能够使用Command + D和Command + Shift + D在垂直和水平方向上拆分窗格。 还有许多技巧要学习,但是仅凭简单的拆分窗格就可以使iTerm2值得从默认选项进行切换。
上下文感知插件
这些问题的答案归类为终端扩展,可以称为“上下文感知插件”。
对于当前的Git分支,我使用了此parse_git_branch()方法(如果使用的是Oh My Zsh ,则有类似的插件)。 对于Python,virtualenv会在提示前自动添加前缀。 哦,我的Zsh有很多插件 ,您一定会找到可以改善生活的东西。
至于我的本地机器? 我只是直接将它放在PS1格式中,因为我很基本,而macOS并不能真正让您命名计算机。
多行提示很好
细心的读者可能会注意到,十年来我的提示中的一个变化是,现在只有两行。 这是我最近逐渐爱上的一项最新更改,因为我前面提到的所有这些插件都使我Swift出现了looonnngggg。 在开始使用行换行的命令输入尝试执行任何基本操作之前,您只能在文件系统中导航得如此之深。 随之而来的是偶尔的重画问题和可读性问题。
我收到的有关解决此问题的建议主要围绕“哦,您正在使用zsh?请使用Powerlevel10k !”。 对于像我这样不受束缚的人来说,这很好。 但是我能够从这些主题中学习,并从中得到一些建议。
我所做的就是添加一个$'\n'
前的最后$
在我的提示,这使得我的上下文感知信息流机,当前文件夹,当前GitHub的分支,当前的virtualenv等,所有活一行,然后可以毫无问题地输入我的命令。
我发现的唯一问题是学习在哪里看 。 我习惯于将视线从线的中心开始,因为这是提示开始的地方。 我正在慢慢地学习只看提示,但这是一个缓慢的过程。 我有十年的视力训练要撤消。
使用对你有用的东西
如果您偏爱某种样式或工具,那么您在该偏好中绝对有效。 您可以尝试其他方法,但不要以为像酷孩子一样必须使用最新和最好的工具。 您的风格和喜好会随着时间而变化,但决不要强迫您进行不舒服的更改。
下次,当凯蒂姨妈抱怨IDE时,请加入我们。