跳至主要内容

Vim 終端機美化與進階折疊技巧

FreeBSD Archlinux Photon_OS Oracle_linux WSL Docker

提示

自從我開始用Linux當主要的console後就開始騷包的準備大量導入Powerline

本篇聚焦於傳統與現代命令列介面中的經典 Vim,專注於如何透過 Powerline 打造高顏值的狀態列,並結合 Marker 摺疊機制 與高效快捷鍵,讓純文字編輯器兼具視覺與結構管理的極致體驗(註:Neovim 與 NvChad 的現代化 Lua 架構請參閱另篇專文)。

一、 前置準備:Powerline 字型與核心安裝

為了讓狀態列正確渲染特殊圖標與箭頭,必須確保終端機字型與套件到位。

1. 安裝 Powerline 專用補字字型 (Patched Fonts)

  • Arch Linux / Manjaro:

    sudo pacman -S powerline-fonts ttf-jetbrains-mono-nerd
  • Debian / Ubuntu:

    sudo apt install fonts-powerline
  • FreeBSD:

    sudo pkg install powerline-fonts

(安裝後請記得將終端機模擬器的字型設定切換為帶有 Powerline 支援的字型,如 JetBrainsMono Nerd Font)

2. 安裝 Vim 與 Powerline 核心

以 Arch Linux / Manjaro 系統為例:

sudo pacman -S vim powerline python-powerline

二、 Powerline 狀態列美化設定

透過內嵌 Python 模組驅動動態狀態列。

1. 初始化設定檔

將系統內建的 Vim 範例設定複製到家目錄:

cp /usr/share/vim/vim90/vimrc_example.vim ~/.vimrc

(註:依據實際 Vim 版本,路徑中的 vim90 可能會是 vim91 等版本號)

2. 寫入 Powerline 啟動設定

使用編輯器打開 ~/.vimrc,在結尾加入以下設定:

" Powerline 狀態列美化
set laststatus=2 " 永遠顯示底部狀態列

" 透過內嵌 Python 3 載入 Powerline 框架
python3 from powerline.vim import setup as powerline_setup
python3 powerline_setup()
python3 del powerline_setup

效果圖

三、 程式碼摺疊 (Code Folding) 與 Marker 設定

面對動輒數百行的程式碼,透過 Marker 標記與 foldmethod 能有效收合暫時不看的邏輯區塊。

1. 在 ~/.vimrc 內追加摺疊配置

在同一個 ~/.vimrc 檔案中加入以下摺疊參數:

Vim Script

syntax on
set foldmarker={{{,}}}
set foldmethod=marker
set foldlevel=0 " 預設啟動時將所有區塊全數摺疊關閉
let php_folding = 1 " 針對 PHP 語法的額外相依摺疊支援
set foldnestmax=3 " 限制最大巢狀摺疊層數為 3 層

2. 實際撰寫範例

設定完成後,在程式碼註解中加入 {{{}}} 即可建立摺疊區塊:

PHP

// 資料庫連線與初始化模組 {{{
function init_connection() {
// 實作細節...
}
// }}}

四、 摺疊控制高頻快捷鍵對照表 (Folding Commands)

在 Vim 操作摺疊狀態的常用快捷鍵:

快捷鍵指令效果與說明
zi啟用 / 關閉 檔案整體的摺疊功能
zo打開 (Open) 當前游標所在的摺疊區塊
zc關閉 (Close) 當前游標所在的摺疊區塊
zO遞迴打開 當前游標所在層級以下的所有摺疊區塊
zC遞迴關閉 當前游標所在層級以下的所有摺疊區塊
zmfoldlevel 減 1(將整體摺疊層級再收緊)
zMfoldlevel 設為 0(全部區塊強制摺疊
zrfoldlevel 加 1(將整體摺疊層級再放寬)
zRfoldlevel 設到最大(全部區塊完全展開
zx更新摺疊狀態(除了游標所在的區塊外,其餘重新套用規則)
zf動態製作透過視覺模式選取範圍的起始與結束摺疊標記

參考文獻

Powerline on Linux: An Integration Guide

結論

就是騷而已