聲明:此篇文章為A小編使用 Linux 兩年後,又回頭撿起 macOS ,並且把一些在 Linux 世界中學到的技巧應用在 macOS 的心路歷程。會從A小編 2017 年一開始使用 macOS 的過程開始說起……
從 2017 年初開始,A小編的第一台電腦就是 MacBook Air 2015 。一開始A小編也不懂那些命令行、終端機之類的東西,都是用圖像化界面的東西。而且也不懂哪些軟體好用,所以也沒有買什麼軟體。直到 2020 、 2021 年左右,A小編才開始購買一些工具軟體,像 Macs Fan Control 、 BetterTouchTool 等等,來強化A小編在 macOS 的使用體驗。關於其他推薦軟體詳見: A小編也推薦的Mac軟體清單 。
在 2021 年暑假,A小編學習了關於 Linux 的一些東西,隨後就把 macOS 切成雙系統,安裝 ubuntu 。而後在其他各個發行版不斷學習各種命令行工具(詳見:對於 Linux 之所思)。其中最重要的,A小編認為是學會、並且習慣使用 vim。並且也學會使用 平鋪式窗口管理器 。 更重要的是,A小編也習慣了在 Linux 各個發行版上使用命令行的包管理器。
因為今年(2023年)A小編的 MacBook Air 也六歲了,而且之後上班基本上是需要使用微軟的 Office ,所以一定要有一台 pc 或 Mac 是能夠運作 Office 的。也因此才會讓A小編想回來使用 macOS 。
而且,這次A小編也學會使用 NixOS 了,因此也更有底氣解決之前在 macOS 上面糟糕的包管理器體驗。可能有讀者會問, Mac 上也能裝包管理器?答案是:沒錯,甚至 windows 也能裝,只是這兩者的包管理器體驗上基本是比不上其他 Linux 發行版的。有人肯定會問,那學會 NixOS 跟 Mac 的包管理有什麼關聯?因為 NixOS 的包管理器就叫做 Nix ,它可以用在各個 Linux 發行版上,甚至是 macOS 上也行用。不過它的缺點是說明文檔寫的比較模糊,網路上教學也比較少。但是這次A小編算是比上一次使用時更瞭解 Nix 了,加上之前剛學 Linux 時,A小編也裝過 Homebrew 以及 MacPorts 等等的 包管理器 。 只不過,它們兩個都各自有一些問題,導致使用體驗不好。也因此在這次的回歸,A小編才打算重新使用 Nix 來作為在 macOS 上的包管理器。
像 Homebrew 就是它本身機制的問題,導致其運作速度慢(跟其他 Linux 發行版的包管理器相比),而且有些用 Homebrew 裝的軟體,使用起來就是怪怪的。像A小編很喜歡在終端機中使用 tmux 。它是一個終端機管理工具。在預設的情況下,它是使用「Ctrl+B」」作為前綴按鍵,按完後再按其他的快捷鍵。這個前綴按鍵是可以更改的,不過A小編用習慣預設的了。但是 Homebrew 給人家預設成「Ctrl+A」,按理說是可以改的,但不知道為什麼就是改不了。而且, Homebrew 的操作指令混亂(當然也可能只是A小編沒有花心思搞懂的問題),常常搞到發瘋。
後來,A小編就改用 MacPorts 。它的問題是,一定要本地編譯軟體,對性能不強的電腦實在非常不友善。而且也發生過剛安裝時可以安裝,但過一陣子要更新時,就編譯失敗的軟體。加上 MacPorts 的軟體包整體而言偏舊,根據 Repology 網站所寫, MacPorts 上,約有 30% 的包是過時的,是需要更新的(截至2023年6月21日)。在 Homebrew 上的包算是夠新,但它的包數量比較少。
NixOS,其作為一款 Linux 的發行版,有一個很直接的優點就是:包的數量多而且更新頻率高,縱使不是全部的包都能在 macOS 上安裝,能裝的也夠多了。而且,假如搭配 nix-darwin 一起安裝的話,就可以實現跟 NixOS 上面一模一樣的軟體包安裝方式:把要安裝的軟體以及對電腦的設定寫進一個文件裏面(在 NixOS 上叫作 configuration.nix ,在 macOS 上叫作 darwin-configuration.nix ),然後再跑一個指令,就可以輕鬆完成安裝。而這種安裝方式 NixOS 官方稱作「聲明式」安裝。假設要刪掉一個軟體也很簡單,去那個設定文件,把要刪掉的軟體的名字刪掉,再跑跟安裝軟體時同樣的指令就好。(這邊A小編只是簡單說明大概而已,實際上 Nix 的學習曲線是非常陡峭的 , 因為它的邏輯跟其他包管理器截然不同,需要對其有很深刻的理解,才能運用自如。)
圖片來源: Probably the best lecture of nix fundamentals on the internet
當然,你也可以用普通包管理器的方式來使用 Nix ,就是要安裝一個軟體時先打一個指令,解除安裝時再打個不同的指令。一開始A小編也是這樣使用 Nix 的,只是總覺得這樣用差點意思,所以才會在這次回歸時,改搭配 nix-darwin 一起使用。
因為A小編在 Linux 世界中,已經習慣了一套以鍵盤為主、滑鼠作輔助的操作方式了,所以這次回 macOS ,A小編也盡可能地實現全鍵盤操作的設定。加上為了統一打字習慣,A小編也把輸入法換成跨系統通用(就是在 Linux 、 macOS 、 windows 都可以用)的輸入法。以下是這次A小編帶回 macOS 的東西:
最早A小編剛用 macOS 時,A小編根本不知道什麼是 vim ,是後來接觸 Linux 後,A小編才知道這個「神之編輯器」。不過,A小編也是到現在,才比較習慣用 vim 來打網站(這篇文章就是用 vim 打的)。為什麼這麼慢才習慣用 vim 是因為一開始打網站是用 VS Code ,其中A小編特別依賴 Live Server 這個插件,它可以讓你在瀏覽器實時預覽你寫的網頁。而這個插件在 VS Code 裡面只要去安裝插件的地方,搜尋完用滑鼠按一下就安裝好了。但是在 vim 的插件中,A小編一直找不到合適的。直到使用 NixOS 之後,因為在 NixOS , VS Code 裝插件很麻煩(要另外寫設定文件),所以A小編開始研究能否直接在終端機中使用 Live Server,之後學會了自己從命令行安裝、啓動 Live Server 。
也因此,這次回歸 macOS ,A小編就沒有裝 VS Code 了。因為A小編基本上也只是打打網頁,有時候寫一些小腳本,然後打一些 Markdown 筆記而已,用 vim 加上一些插件或命令行工具就足夠了。以下介紹其他A小編使用的 vim 插件以及幾個命令行工具:
這邊也提供A小編在 mac 上使用的各種命令行軟體的設定文件,如果有需要的人可以參考一下: Nix-On-MacOS
好了,那以上就是這次的內容。若能讓您對 macOS 中的包管理器之現狀、一些不錯但比較小衆的軟體還有一些 vim 插件有更多的認識的話,那是再好也不為過了!