只要 5 分鐘!讓你的 Mac 擁有美觀的 Terminal!2025 最新最簡單快速的 Zsh + iTerm2 + Powerlevel10k 設定教學

  1. 前言
  2. 環境需求
  3. 安裝順序
    1. 1. 安裝 zsh
    2. 2. 安裝 oh-my-zsh
    3. 3. 安裝 iTerm2
    4. 4. 安裝主題 Powerlevel10k
    5. 5. 設定主題
    6. 完成!
  4. 進階推薦:安裝 zsh 的 Plugins
    1. 1. 安裝
    2. 2. 設定 Plugins 並啟用
  5. 如果 VS Code 的 Terminal 無法正常顯示圖示的話
  6. 參考資料

前言

最近在重新設定 Mac 的 Terminal 時,發現現在關於 Zsh 和 iTerm2 的網路文章都太舊、很多指令已經不適用、安裝順序也很混亂,對於新手來說我覺得會很挫折,所以決定用最簡潔的方式把自己最近設定的流程記錄下來,目的是希望新手們也能輕鬆快速擁有一個美觀好用的 Terminal (幾年前我還是新手的時候,真的是設定到很崩潰…)

環境需求

  1. MacOS
  2. 已安裝 Homebrew
  3. 已安裝 Git

安裝順序

請按照 1~5 步驟的順序,在 Terminal 中執行指令

1. 安裝 zsh

2. 安裝 oh-my-zsh

3. 安裝 iTerm2

4. 安裝主題 Powerlevel10k

5. 設定主題

開啟 iTerm 並執行:

  1. 按下 i 切換成 insert 模式,往下拉會看到 ZSH_THEME,將它設定為 ZSH_THEME="powerlevel10k/powerlevel10k",輸入 :wq 儲存並離開
  2. 執行指令:exec $SHELL
  3. 照著互動式的選擇題,依自己需求和喜好去輸入對應字母數字,最後就會自動套用到設定檔(若沒有跳出互動式設定或是想要再次調整,隨時可執行指令 p10k configure 去做設定)

完成!

恭喜!你的 Terminal 已成功美化!

(內建的 Tango Dark 主題就已經很好看)

如果想要讓使用體驗更升級的話, 請往下繼續閱讀~

閱讀更多»

【轉職】非本科從零開始轉職工程師的心路歷程(包含給轉職者的建議)

先自我介紹一下,作者 Jumping 我本人 2019 年以前從來沒碰過程式,透過自學資料科學相關課程,目前是有三年資料領域工作經驗的資料工程師 Data engineer,這篇文章記錄了我從自學到轉職過程的心路歷程,以及給同樣想要轉職的朋友的建議。

先聊聊我的背景

或許我跟大多數人一樣,在上大學前也完全不知道自己要念什麼科系,當時只想說「總之就是三類組,然後分數到哪就去哪」, 後來大學念了食品科學系,雖然後來也是有找到一點熱情,但畢業後仍然不知道自己要什麼,看到身邊不少朋友選擇繼續念碩士,我也憑著那一點熱情考了食品科學相關的研究所,所以在我的六年學生時期是完全沒有碰過程式,大部分都是生物和化學相關的課程和實驗。

當完兵出了社會,第一份工作理所當然的選擇進了食品業做研發,當時還常常被面試官問「為什麼你要做食品研發?」,老實講,我還真的回答不出來。

這種茫然困惑、不知道自己想要做什麼的狀態,一直持續到我出社會幾個月後,接觸程式語言時才開始產生變化。

接觸程式的過程

拿到工作的薪水後,我開始想該如何做投資上的運用,這時候我開始研究公司的財報、技術分析線圖等散戶會做的一些事,在查資料時發現很多人會使用 Python 自己寫爬蟲和畫線圖,於是我開始一點一點地學習怎麼樣寫 Python 語法,後來遇到有些股票網站資訊和圖表是需要付費訂閱才能觀看時,也試著自己按照那些付費圖表的邏輯去編寫程式,並嘗試視覺化出我心中所想的圖表。

(至於我自學的方式和課程,後續的文章會再做說明)

為何轉職?以及轉職時遇到的困難?

在這樣反覆學習和實作的過程中,漸漸發現自己對於寫程式收集及處理資料很感興趣,也很享受把想法和創意透過程式作品實踐出來的過程和成就感,於是就開始思考自己是否有機會轉職做一位工程師,而當時會想轉職很大的原因是:

  • 覺得大數據是未來趨勢,所有公司將來都會需要數據來輔助決策,因此打算往數據方面的工程師發展
  • 當然薪資待遇也很重要,我待的食品業算是傳產,薪資天花板比較低,如果轉職的話比較有發展空間

但同時也要思考許多實際上的困難

  • 因為領域跨很多,所以要補的技術和知識實在太多
  • 自己當時因為研究所 + 當兵 + 工作兩年已經滿 28 歲,要怎麼跟更年輕的肝競爭,還來得及轉嗎?
  • 要離職專心自學嗎?我自己經濟狀況是否允許?

調適心態、面對挑戰

面對這些困難,我自己仍然做了轉職的決定,是因為有了心態上的調適,像是技術不足的部分我可以靠上課學習來補足,也選擇了在繼續工作的狀態下持續自學,讓我不用擔心經濟上的問題。

另外一個我覺得很重要的心態突破,就是評估了利弊之後,好好想一下「對自己來說,最糟的狀況是什麼?」,我自己的答案是「大不了我就是轉職失敗,然後回食品業工作」,所以其實現在轉職並不會有多糟的後果,也是因為這樣想,我才毅然決然繼續往轉職資料工作者的路前進。

你也想要轉職嗎?

當我過了兩三年,回顧我的轉職過程時,我覺得有幾點人生體悟,可以給想要轉職的朋友一些參考:

– 確立目標

凡事都需要一個清楚明確的目標,才能讓我們走在正確的路上!

– 動手實作

不論是在什麼領域,學習都不能只有輸入,最重要的還是輸出,學了之後一定要自己動手做,像是當時我自己的 Side Project 就幫助我找到工作。

– 放下「沉沒成本」

其實不會有所謂「真正準備好」的時候,何時開始都不嫌晚,最適合開始進行的時機就是「現在」,不要因為「沉沒成本」而委屈求全。我到現在還是很感謝當時的我所做的選擇,因為沒有當初的「捨」,就沒有現在的「得」

– 列出恐懼與困難

把自己目前想得到的恐懼和困難都寫下來,如果自己還在為了轉職而卻步,想想這些困難是「知識技術」上的挑戰?還是其實是「勇氣」的挑戰呢?列出了所有的恐懼並面對它們,說不定會發現其實自己離目標沒有想像中的遠喔!

如果你正在為了要不要轉職而猶豫不決,希望我的這些經驗能幫助到你! 也歡迎把文章分享給正在轉職的朋友們!

比較不同的設定檔:ini, YAML 和 TOML(附 Python 讀取設定檔的程式碼)

  1. 前言
  2. 比較
    1. ini
    2. YAML
    3. TOML
  3. 程式碼
    1. Read .ini file
    2. Read .yaml file
    3. Read .toml file
  4. 總比較表
  5. 總結
  6. 參考資料

前言

在寫專案的時候,常會需要一些帳號密碼或是資料庫連線的資訊,而這些資訊通常不建議直接寫在程式碼中,而是放在獨立的檔案中,這種檔案就叫做設定檔 (Configuration Files)。

但設定檔有很多種,像是 .json, .cfg, .ini, .yaml, .toml,撰寫的方式也有些許不同,用 Python 讀取的方式和套件也不同,所以這次整理了我目前工作上曾遇到的三種較常見的設定檔: ini, yamltoml,比較一下它們的優劣,並附上使用 Python 讀取它們的程式碼範例。

閱讀更多»

推薦 6 個可以幫你提升工作效率的 VS Code 擴充套件(附使用教學)

  1. 前言
  2. Tabnine: 宛如讀心術般的程式碼自動補齊工具
    1. 功能
    2. 個人點評
    3. 使用方法
  3. Material Icon Theme: 美化檔案圖示、清楚顯示不同檔案類型
    1. 功能
    2. 個人點評
    3. 使用方法
  4. Rainbow CSV: 以顏色區分結構化資料的不同欄位,方便快速探索資料
    1. 功能
    2. 個人點評
    3. 使用方法
    4. 小建議
  5. GitLens: 顯示程式碼 Git 紀錄,提升程式碼協作效率
    1. 功能
    2. 個人點評
    3. 使用方法
  6. file-tree-generator: 一鍵產出資料夾結構,方便撰寫技術文件
    1. 功能
    2. 個人點評
    3. 使用方法
  7. autoDocstring: 一鍵產出註解結構,讓同事更快看懂你的 code
    1. 功能
    2. 個人點評
    3. 使用方法
    4. 小建議
  8. 總結

前言

過去曾試過不同的幾個 IDE 來寫程式,而在用過 Visual Studio Code (簡稱 VS Code) 之後就定居下來了,因為 VS Code 不僅介面乾淨直覺,還有很多好用的擴充套件可以安裝!

因此在這篇文章中,我想來分享一下在我做為資料工程師的這幾年,我覺得在工作實務上有幫助我提升效率的 6 個 VS Code 擴充套件,希望這些套件也能幫助到來看這篇文章的你們!


Tabnine: 宛如讀心術般的程式碼自動補齊工具

功能

  • 可以即時提供程式碼建議,並且讓我們可以一鍵自動補齊

個人點評

  • 會偵測當下文件,推薦合理的程式碼
  • 按下 Tab 即可完成一整段程式碼
  • 免費版就已經很好用,而且比另一款 Kite 更省記憶體
  • 有時候真的覺得他會讀心術,完全知道我想要打什麼

使用方法

安裝後就會直接在我們輸入程式碼的時候開始提供建議,就像下圖紫色方框中,游標後方灰色的字就是 Tabnine 根據當下文件的程式碼所推薦出來的,如果他是你要的程式碼,那就可以放心按下 Tab 鍵,這一行程式碼就瞬間完成囉!

Tabnine 提供程式碼建議

連結:https://www.tabnine.com/


Material Icon Theme: 美化檔案圖示、清楚顯示不同檔案類型

功能

  • 美化 VS Code 側欄的檔案圖示

個人點評

  • 👍 不同檔案類型的差異會非常明顯
  • 👍 讓我們可以快速找到想要的資料夾 or 檔案

使用方法

安裝後就會馬上替換現有的 icon 圖示,如下圖

如果想要停掉的話,可以點擊 VS Code 左下角的齒輪 (或偏好設定 Preferences) -> 主題 (Themes) -> File Icon Theme 去做切換唷!

Material Icon Theme 安裝後,檔案圖示變得漂亮又清楚

連結:https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme


Rainbow CSV: 以顏色區分結構化資料的不同欄位,方便快速探索資料

功能

  • 將結構化資料的不同欄位上色、排列

個人點評

  • 👍 非常適合資料工作者,因為幾乎每天都會碰到 CSV 檔
  • 👍 直接在 VS Code 裡面就可以快速探索資料

使用方法

安裝後打開任何 csv (or tsv) 檔,就會看到不同欄位已經有不同顏色,如果想要排列如下圖,要按一下底部 bar 上面的 Align,也可以利用點擊 Query,會顯示表格化的資料,並且下方可以進行 SQL 的查詢(功能按鈕如紫色背景的下下圖)。

小建議

排列後檔案會多出空格,建議關掉時選擇 不要儲存,不然有時候儲存後再用 Pandas 讀取會有不必要的空格字元在資料裡面。

同一份 CSV 檔,安裝 Rainbow CSV 的前後對照
Rainbow CSV 功能按鈕

連結:https://marketplace.visualstudio.com/items?itemName=mechatroner.rainbow-csv


GitLens: 顯示程式碼 Git 紀錄,提升程式碼協作效率

功能

  • 搭配 code 顯示 Git 紀錄,包含作者和上傳時間

個人點評

  • 👍 看同事 code 遇到問題時,可以直接去問當事人比較快
  • 👍 根本就是超好用的 抓戰犯 團隊合作 神器!

使用方法

安裝後就會看到原本程式碼的後方會顯示該行程式碼的作者和 commit 時間,游標移到那排灰字上方,還會顯示更詳細的紀錄

在 VS Code 側欄也會多一個 GitLens 的圖示,點進去可以看到所有的 commits,展開後可以看到該 commit 的詳細內容,並且也有很好分辨的圖示,像是綠色是 Added,藍色是 Modified,橘色是 Renamed,紅色是 deleted,非常清楚。

GitLens 功能展示

連結:https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens


file-tree-generator: 一鍵產出資料夾結構,方便撰寫技術文件

功能

  • 一鍵產出整個專案資料夾的結構

個人點評

  • 👍 非常適合用於寫技術文件,像 README.md 之類的
  • 👍 雖然產出沒有到很漂亮,但已經很完整又方便

使用方法

安裝後打開想要製作 file tree 的專案資料夾,在左側欄空白處點擊右鍵(如下圖 util.py 附近空白處),選擇最底下的選項 Generate to tree 之後就會在右側開啟一個新頁面,上面就會有這個專案的整個資料夾架構囉!之後就可以複製到想要的文件上貼上即可!

file-tree-generator 使用教學

連結:https://marketplace.visualstudio.com/items?itemName=Shinotatwu-DS.file-tree-generator


autoDocstring: 一鍵產出註解結構,讓同事更快看懂你的 code

功能

  • 一鍵產出 Python function 註解結構

個人點評

  • 👍 說到文件,一定不能忘記重要的註解!
  • 👍 有了結構,我們可以更專注於撰寫註解內容

使用方法

安裝後就可以在 Python function 的下方輸入三個引號(預設是雙引號來觸發,也可以調整為單引號),按下 enter 或 tab 選擇出現的第一個選項 Generate Docstring,就會產出完整又精美的註解結構啦!

如果 function 上有定義好 input/output 的資料型態 data type,autoDocstring 也會非常聰明地自動幫我們放到註解裡面,真的是寫註解的救星~

小建議

如果輸入三個引號沒有出現 Generate Docstring 的選項,也可以使用快捷鍵 Command + Shift + 2 來快速建立註解唷!

autoDocstring 使用教學

連結:https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring


總結

以上就是 6 個我實務上使用覺得有幫助到我的 VS Code 擴充套件啦!

我覺得非常推薦資料科學工作者可以使用 VS Code,除了擴充套件之外,他也有原生的 Jupyter notebook 方便我們做資料探勘或是機器學習 ML!

而且因為是 Open Source 的關係,可用的擴充套件也持續在推陳出新,如果是非常多人在使用的套件,甚至有機會直接變成內建的功能,像是之前超實用的凸顯括弧配對的工具 Bracket Pair Colorizer 就是一個活生生的例子。

如果這篇文章有幫助到你的話,歡迎幫文章按個讚 👍

你也有用過哪些好用的 VS Code 擴充套件嗎?歡迎留言分享~🤗


歡迎追蹤我的 IG 和 Facebook

玩膩了鐵達尼號資料集?來看看最新的太空船版本鐵達尼號吧!

另類的鐵達尼號資料集

最近在研究 Data Quality 相關的工具,需要一個簡單的資料集來測試,剛好在 Kaggle 上看到一個練習資料集,是太空船版本的鐵達尼號,如果有在玩 Kaggle 或學習機器學習的話一定有聽過或用過鐵達尼號這個資料集,但如果你已經玩膩了原版的鐵達尼號,可以來玩玩看這個太空船版鐵達尼號唷!

資料集背景故事

這個資料集背景是設定在未來的西元 2912 年,有一艘太空船載著近 13,000 名乘客,裡面有來自不同星球的人類,正在前往其他星球居住的路上,但途中因為不明的時空異常狀況,導致有幾乎一半的乘客被傳送到平行時空,而我們的目標就是要 預測哪些人可能會被傳送

資料集內容 (Data Details)

  • PassengerId
    • 每個乘客的唯一 ID,每個 ID 都採用以下形式 gggg_pp,其中 gggg 指乘客正在旅行的group,並且 pp 是他們在 group 中的編號。
    • 一個團體中的人通常是家庭成員,但不一定。
  • HomePlanet
    • 乘客離開的星球,通常代表他們原本家鄉的星球。
  • CryoSleep
    • 表明乘客是否選擇在航行期間處於假死狀態。
    • 冷凍睡眠中的乘客被限制在他們的船艙內。
  • Cabin
    • 旅客下榻的艙位號,格式是 deck/num/side
    • side 可以是左舷 P,也可以是右舷 S
  • Destination
    • 乘客將登陸的星球。
  • Age
    • 乘客的年齡。
  • VIP
    • 旅客是否在航程中支付了 VIP 服務費用。
  • RoomService, FoodCourt, ShoppingMall, Spa, VRDeck
    • 乘客在各項豪華設施中所支付的費用。
  • Name
    • 乘客的姓名。
  • Transported
    • 乘客是否被傳送到平行時空。
    • 這欄位是 Label,也就是要預測的目標。

最後我們要提交的格式跟原版的鐵達尼號差不多,就是 乘客 ID 是否被傳送 兩個欄位即可

個人覺得這資料集的背景設定還滿有趣的,如果你跟我一樣也看鐵達尼號看到膩的話,可以使用看看這個資料集,之後如果我有完成這個競賽會再放上來分享給大家!

參考資料


歡迎追蹤我的 IG 和 Facebook