Linux中國

凱蒂阿姨的自定義 Mac 終端

十年前,我開始了我的第一份工作,它要求我使用 Linux 作為我的筆記本電腦的操作系統。如果我願意的話,我可以使用各種 Linux 發行版,包括 Gentoo,但由於我過去曾短暫地使用過Ubuntu,所以我選擇了 Ubuntu Lucid Lynx 10.04。

我的 Konsole 終端使用的是 Zenburn 主題,有一個類似於這樣的 Bash 提示符:

machinename ~/path/to/folder $

現在,我使用 Mac,具體來說是 macOS Catalina,我使用 iTerm2Zenburn 主題,zsh 提示符是這樣的:

machinename ~/path/to/folder
$

我想,十年來幾乎相同的提示符,我已經贏得了老古板的稱號,不過這只是標誌著,我的喜好和習慣與現在耍酷的孩子們不一樣而已。

彷彿是為了證明我的古板觀點,我想改變我的終端和我的舊終端一樣。在 Mac 上獲得一個看起來和感覺像 Lucid Lynx 的設置並不簡單,而且我很花了一些時間。

我最近最大的改變是從 Bash 轉移到 zsh,並遷移了我的 Bash 魔改。但這只是其中一個重大的轉變。我學到了許多新式的經驗,現在我把這些經驗贈送給你,親愛的讀者。

Coreutils 對選項的順序更寬容

從 Ubuntu 轉移到 macOS 並沒有太大的轉變,直到我開始覺得我失去了 Unix 范。我試著運行一些基本的操作,比如刪除文件夾,但卻被告知我錯誤地調用了 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,它允許我比基本的操作系統終端應用更靈活。我最喜歡的 iTerm 強大功能之一是能夠使用 Command+DCommand+Shift+D 來垂直和水平分割窗格。還有很多技巧需要學習,但僅是簡單的分割窗格就值得用 iTerm2 換掉默認終端。

上下文感知的插件

即使是一個古板的用戶也會自定義終端提示,其中一個原因是為了獲得一些情境感知。我喜歡終端給我提供上下文,並回答所有想到的問題。不僅僅是我在哪個文件夾里,而是:我在什麼機器上?這是個 Git 倉庫嗎?如果是,我在哪個分支?我是在 Python 虛擬環境中嗎?

這些問題的答案最終都歸結為一類稱之為「上下文感知插件」的終端擴展。

對於當前的 Git 分支,我使用了這個 parse_git_branch() 方法(如果你使用的是 Oh My Zsh,也有類似的插件)。對於 Python 來說,virtualenv 會自動給提示符加前綴。Oh My Zsh 有如此多的插件,你一定能找到改善你生活的東西。

至於我的本地機?我就直接用 PS1 格式,因為我喜歡這樣的基本信息,而且 macOS 並沒有真正讓你給機器起個名字。

多行提示符也不錯

觀察力強的讀者可能會注意到,十年來我的提示符有一個變化,就是現在它是兩行。這是最近的一個變化,我慢慢學會了喜歡,因為我前面提到的所有這些插件都讓我的提示符變得很長很長。你在文件系統中導航不能太深,要不你試圖做任何基本的事情都會輸入換行。隨之而來的是偶爾的重繪問題和可讀性問題。

我收到的關於解決這個問題的建議大多圍繞著「哦,你在用 zsh?用 Powerlevel10k 吧!」這對於像我這樣不固步自封的人來說是不錯的,但我能夠從這些主題中學習到一些,並從中獲取一點技巧。

我所做的是在我的提示符中的最後一個 $ 前加一個 $'n',這樣我的上下文信息 —— 當前機器、當前文件夾、當前 GitHub 分支、當前 virtualenv 等等 —— 都可以在一行中出現,然後我的命令就可以順利輸入了。

我發現唯一的問題是學會在哪裡。我習慣於讓我的眼睛從行的中心開始,因為以前我的提示符就是從那裡開始的。我正在慢慢學會向左看提示符,但這是一個緩慢的過程。我有十幾年的眼睛習慣要撤銷。

使用適合你的方法

如果你喜歡某種風格或工具,那麼你的這種偏好是絕對有效的。你可以嘗試其他的東西,但千萬不要認為你必須使用最新和最偉大的,只是為了像很酷的孩子一樣。你的風格和喜好可以隨著時間的推移而改變,但千萬不要被迫做出對你來說不舒服的改變。

等下一次,凱蒂阿姨再給你吐槽一下 IDE。

via: https://opensource.com/article/20/7/mac-terminal

作者:Katie McLaughlin 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國