使用 tmux 和 Git 定制我的 Linux 终端

设置您的控制台,让您始终知道自己身在何处以及下一步该做什么。
85 位读者喜欢这篇文章。
woman on laptop sitting at the window

CC BY 3.0 US Mapbox Uncharted ERG

我使用 GNOME 终端,主要是因为它是我发行版的默认终端。但是我的终端内部发生的事情远非“默认”。在我深入探讨如何定制它之前,先看看它是什么样子

从底部开始

我使用 tmux,一种终端多路复用技术,来管理我的终端体验。

在上图的底部,您可以看到我的绿色 tmux 工具栏。底部的 [3] 表示此终端是第三个终端:每个终端都运行自己的 tmux 会话。(我创建了一个新的会话来使字体更大,以便在此屏幕截图中更容易看到;这是此终端与我的真实终端之间唯一的区别。)

提示符看起来也很奇怪,对吧?由于提示符中塞入了如此多的信息, 我喜欢插入一个换行符,这样如果我想进行即兴 shell 编程或编写一个五步管道,我就可以做到,而不会让内容溢出。 缺点是简单的命令序列——touch this,copy that,move this——会更快地滚出我的屏幕。

内容行末尾的是 Aleph null,最小的 无限基数。 我喜欢内容行的结尾很明显,当我意识到 Aleph 和下标 0 都是 Unicode 字符时,我无法抗拒将 Aleph null 作为我的提示符一部分的诱惑。(数学爱好者们,联合起来!)

在那之前是我的用户名;这非常有用,因为我在多台具有不同用户名的机器上使用相同的 dotfiles(存储在 Git 中)。

在我的用户名之前是我所在目录的最后一个组成部分。完整路径通常太长且无用,但当前目录对于像我这样总是忘记自己正在做什么的人来说非常宝贵。 在那之前是机器的名称。我所有的机器都以我喜欢的电视节目命名。我的旧笔记本电脑是 mcgyver

提示符中的第一位是我最喜欢的部分:一个字母,让我知道目录的 Git 状态。 如果目录“(不在)Git 中”,则为 G;如果目录“OK”且无需执行任何操作,则为 K;如果有 Git 未知的文件必须添加或忽略,则为 !;如果我需要提交,则为 C; 如果没有上游,则为 U;如果存在上游,但我尚未推送,则为 P。 此方案不是基于当前状态,而是描述了我需要执行的下一步操作。(要回顾 Git 术语,请阅读这篇文章。)

此终端功能是通过一个有趣的 Python 实用程序实现的。 它运行 python -m howsit(在我安装了 howsit 在专用虚拟环境之后)。

您可以在上图中看到渲染效果,但为了完整性,这是我的 PS1

[$(~/.virtualenvs/howsit/bin/python -m howsit)]\h:\W \u ℵ₀  
$
接下来阅读什么

使用 tmux 创建您梦想中的控制台

tmux 可以做很多事情,特别是当您将 tmuxinator 添加到组合中时。 在我们关于使用开源提高生产力的 20 种方法的系列文章的第十五篇中查看它们……

标签
Moshe sitting down, head slightly to the side. His t-shirt has Guardians of the Galaxy silhoutes against a background of sound visualization bars.
Moshe 自 1998 年以来一直参与 Linux 社区,帮助举办 Linux “安装派对”。 他自 1999 年以来一直从事 Python 编程,并为核心 Python 解释器做出了贡献。 Moshe 在 DevOps/SRE 这些术语出现之前就一直是 DevOps/SRE,他非常关心软件可靠性、构建可重现性以及其他此类事情。

评论已关闭。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.