在許多程式設計師眼中,Vim 是無可匹敵的代碼編輯利器;然而,當你想拿它來寫長篇小說、散文或上萬字的專題報導時,往往剛寫沒兩千字就被各種「水土不服」的預設行為勸退:
- 中文段落沒有空格,游標一跳就是整大段:Vim 預設以「硬換行(自然段)」為跳轉單位,按下
j或k時,游標直接飛越眼前的折行文字,完全無法在長段落中微調修辭。 - 方向鍵與退格鍵動不動就「撞牆」:在行首按 Backspace 無法刪除上一行的換行符,左右方向鍵也無法自然跨行,完全沒有現代文字編輯器的行雲流水。
- 行號與介面雜訊分散注意力:滿螢幕的行號、狀態列、語法波浪線,讓人很難進入心流。
- 萬字長文缺乏章節導航:長篇作品結構複雜,若沒有像 Scrivener 或 Word 那樣的章節大綱側邊欄,翻找與修訂將會是一場災難。
為了徹底解決這些問題,萬事屋整理並分享這套**「中文長文與小說創作專用極簡配置」**。除了作為日後換機或重灌時隨時可用的備份紀錄,也供所有熱愛純文字寫作的作家與創作者參考。文末並附上 4 款核心外掛的安裝教學與實戰應用技巧。
延伸閱讀:
一、 完整 .vimrc 設定檔(隨取即用備份)
請將以下內容直接複製並貼入家目錄下的 ~/.vimrc 檔案中:
" ==============================================================================
" 中文長文與小說創作專用極簡配置
" ==============================================================================
" --- 基礎環境與編碼 ---
syntax on " 啟用語法高亮
filetype plugin indent on " 啟用外掛與縮排規則偵測
set encoding=utf-8
set fileencodings=utf-8,cp950,gbk,latin1
set termencoding=utf-8
set fileformat=unix
set noswapfile " 減少暫存檔干擾
set autoread " 外部修改自動重新讀取
" --- 顯示與視覺體驗 ---
set wrap " 自動折行(視覺折行,不寫入硬換行符號)
set linebreak " 不在單詞或特定符號中間斷開
set breakindent " 折行後保持與前行相同的縮排層級
set showbreak=↪\ " 折行標記,清楚辨識是否為同一段落
set nolist " 關閉空白字元與不可見字元顯示
set number " 保留行號供段落定位
set cursorline " 凸顯當前行
set scrolloff=5 " 上下滾動時預留 5 行緩衝
" --- 中文寫作核心:視覺行跳轉 ---
nnoremap j gj
nnoremap k gk
nnoremap $ g$
nnoremap 0 g0
nnoremap ^ g^
vnoremap j gj
vnoremap k gk
" --- 編輯與排版流暢度 ---
set smarttab
set expandtab
set shiftwidth=2
set tabstop=2
set virtualedit=block " 允許區塊選取超出文字範圍
" 1. 解除退格鍵(Backspace/Delete)限制
set backspace=indent,eol,start
" 2. 允許方向鍵與退格鍵跨行移動
set whichwrap+=<,>,h,l,[,]
" --- 搜尋設定 ---
set ignorecase
set smartcase
set incsearch
set hlsearch
nnoremap <silent> <Esc> :nohlsearch<CR>
" --- Markdown 寫作專用行為(自動觸發) ---
augroup WritingMode
autocmd!
autocmd BufRead,BufNewFile *.md set filetype=markdown
autocmd FileType markdown,text setlocal spell spelllang=en_us
autocmd FileType markdown,text setlocal textwidth=0
autocmd FileType markdown setlocal conceallevel=2
augroup END
" ==============================================================================
" 外掛宣告與功能連動
" ==============================================================================
call plug#begin('~/.vim/plugged')
Plug 'junegunn/goyo.vim' " 專注模式
Plug 'junegunn/limelight.vim' " 段落聚光燈
Plug 'preservim/vim-markdown' " Markdown 語法與摺疊支援
Plug 'preservim/tagbar' " 大綱側邊欄
call plug#end()
" --- Goyo 與 Limelight 連動設定 ---
autocmd! User GoyoEnter Limelight
autocmd! User GoyoLeave Limelight!
let g:limelight_default_coefficient = 0.7
let g:limelight_conceal_ctermfg = 240
let g:limelight_conceal_guifg = '#585858'
" --- vim-markdown 實用設定 ---
let g:vim_markdown_folding_disabled = 0
let g:vim_markdown_conceal = 2
let g:vim_markdown_frontmatter = 1
" --- Tagbar 支援 Markdown 標題解析 (相容 Universal Ctags 6.x) ---
let g:tagbar_ctags_bin = '/usr/local/bin/ctags'
let g:tagbar_type_markdown = {
\ 'ctagstype' : 'markdown',
\ 'kinds' : [
\ 'c:chapter',
\ 's:section',
\ 'S:subsection',
\ 't:subsubsection',
\ 'T:l4subsection',
\ 'u:l5subsection'
\ ],
\ 'sort' : 0
\ }
" --- 寫作快捷鍵設定 ---
nnoremap <silent> <F7> :Goyo<CR>
nnoremap <silent> <F8> :TagbarToggle<CR>
二、 設定核心解析:為什麼這樣寫對中文創作最友善?
這份設定檔看似簡約,但每一行都針對中文創作的特殊痛點做了調校:
1. 中文寫作命脈:視覺行(Visual Line)跳轉
在英文寫作中,句子間有空格,且每行常有固定字元數;但在中文排版中,一個段落常由數百字綿延組成。
- 預設問題:按下
j、k,游標會跳到「下一個自然行(也就是下一個 Enter 換行)」,導致在眼前的折行段落中直接暴衝跳過好幾行。 - 解決方案:
透過將nnoremap j gj nnoremap k gk nnoremap $ g$ nnoremap 0 g0 nnoremap ^ g^j與k映射至gj與gk,游標移動便以肉眼看見的螢幕折行為準,配合g$與g0自由移動到當前可見行的行首行尾,徹底還原流暢的字句微調手感。
2. 優化折行排版與標示
set wrap
set linebreak
set breakindent
set showbreak=↪\
set wrap:啟用軟折行,不會把強迫換行符號(\n)硬生生寫入檔案。set breakindent:折行後的文字會與第一行保持一致的縮排,版面整齊不凌亂。set showbreak=↪\:在折行行首加上小箭頭標記,讓你在閱讀時一眼看出「這幾行其實屬於同一個段落」。
3. 解除退格鍵與方向鍵的「跨行限制」
set backspace=indent,eol,start
set whichwrap+=<,>,h,l,[,]
Vim 預設的 Backspace 在行首是無法刪除上一行的,方向鍵也無法直接移到下一行行首。加入這兩組設定後,鍵盤操作即與現代編輯器完全一致,無論按退格鍵合併段落或用方向鍵漫遊,都不會再感覺「卡住」。
4. 停用硬換行與暫存檔防護
set textwidth=0:徹底防止 Vim 在你打滿 80 個字元時自動插入物理換行符號,保證純文字檔乾淨。set noswapfile:在寫作目錄中不產生.swp暫存垃圾檔案,避免備份同步時發生衝突。
三、 外掛安裝前置:安裝 vim-plug
本配置採用輕量且極速的 vim-plug 作為外掛管理器。
步驟 1:下載 vim-plug
請依照你的作業系統開啟終端機(Terminal)執行對應指令:
-
macOS / Linux:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim -
Windows(PowerShell):
iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |` ni $HOME/vimfiles/autoload/plug.vim -Force
四、 4 大核心外掛教學與實戰應用
這 4 款外掛各自司職一項關鍵能力,相互搭配後能讓終端機中的 Vim 瞬間蛻變成專業的作家寫作工作室。
1. Goyo.vim —— 無干擾的極簡打字機模式
- 核心功能:一鍵隱藏所有狀態列、行號、分頁標籤與側邊欄,並將編輯區塊水平置中收窄,營造如機械打字機般的專注氛圍。
- 安裝宣告:
Plug 'junegunn/goyo.vim' - 實戰應用:
- 我們在設定檔中綁定了快捷鍵
<F7>,在一般模式下按下<F7>即可進入或離開 Goyo。 - 你也可以手動輸入指令調整視窗寬度,例如:
代表將寫作寬度限制在 85 個字元欄位,讓長行文字不會過度延展至螢幕兩側,有效減輕眼球來回掃視的疲倦感。:Goyo 85
- 我們在設定檔中綁定了快捷鍵
2. Limelight.vim —— 照亮思緒的段落聚光燈
- 核心功能:配合 Goyo 使用的聚光燈工具。它會將目前游標所在的段落維持正常色彩,其餘前後段落則依設定比例淡化變暗。
- 安裝宣告:
Plug 'junegunn/limelight.vim' - 配置亮點:與 Goyo 完美聯動
當你按autocmd! User GoyoEnter Limelight autocmd! User GoyoLeave Limelight! let g:limelight_default_coefficient = 0.7<F7>進入 Goyo 專注模式時,系統會自動開啟 Limelight;退出 Goyo 時則自動解除。0.7的係數能讓上下文保留淡淡的輪廓,既不搶走當前靈感,又能隱約掌握上下文邏輯。
3. vim-markdown —— 支援章節摺疊與 Frontmatter
- 核心功能:專門針對 Markdown 檔案的語法強化套件,提供標題層級自動摺疊、YAML 標頭(Frontmatter)支援,以及標記語法智慧隱藏(Conceal)。
- 安裝宣告:
Plug 'preservim/vim-markdown' - 實戰應用與快捷操作:
- 章節摺疊(Folding):當章節動輒上萬字時,透過摺疊可以將整章內容縮成單一行標題:
za:展開或摺疊當前游標所在的章節。zr:全面展開一級標題。zm:全面收合所有標題。
- YAML Frontmatter 辨識:若你的文章帶有文章中繼資料(如標題、發布時間、標籤),
g:vim_markdown_frontmatter = 1能保證這些開頭資訊不會被視為一般語法而發生顯示錯亂。
- 章節摺疊(Folding):當章節動輒上萬字時,透過摺疊可以將整章內容縮成單一行標題:
4. Tagbar —— 即時更新的章節大綱側邊欄
- 核心功能:在 Vim 側邊開啟浮動大綱目錄,自動解析當前檔案中的一級到六級標題(H1~H6),讓你隨時掌握全文脈絡,並能瞬間跳轉。
- 先決條件(必裝 Universal Ctags):
Tagbar 需要呼叫底層的 ctags 程式來解析 Markdown 結構,請務必先在系統中安裝 Universal Ctags:
- macOS (Homebrew):
(備註:若為 Apple Silicon 晶片 Mac,brew 預設路徑可能在brew install universal-ctags/opt/homebrew/bin/ctags,請檢查which ctags並確認.vimrc中的g:tagbar_ctags_bin路徑是否相符) - Ubuntu / Debian:
sudo apt install universal-ctags
- macOS (Homebrew):
- 安裝宣告:
Plug 'preservim/tagbar' - 實戰應用:
- 按下
<F8>即可呼叫或關閉章節大綱。 - 在大綱側邊欄中,游標移動到想去的章節名稱上按下
Enter,主畫面就會立刻跳轉至該段落,在萬字大作中穿梭自如。
- 按下
五、 新手快速啟用 SOP(5 分鐘完成設定)
如果你是第一次配置這套環境,請依序執行以下 5 個步驟:
- 安裝 Universal Ctags:在終端機執行
brew install universal-ctags(以 macOS 為例)。 - 安裝 vim-plug:執行前文提供的
curl指令。 - 建立設定檔:將本篇第二段的完整設定檔存入
~/.vimrc。 - 載入並安裝外掛:
- 開啟 Vim:
vim - 在命令列模式輸入安裝指令:
:PlugInstall - 等待四個外掛下載並安裝完成後,輸入
:q退出安裝畫面。
- 開啟 Vim:
- 開始享受極簡寫作:
- 開啟任意
.md檔案(例如vim novel.md)。 - 按下
<F7>:開啟打字機專注模式(Goyo + Limelight)。 - 按下
<F8>:展開側邊章節大綱(Tagbar)。
- 開啟任意
結語:回歸純粹的文字心流
許多人認為純文字編輯器過於冰冷,但對作家來說,沒有跳出的訊息通知、沒有繁雜的工具列、只有一行行隨游標浮現的墨黑文字,才是最極致的創作溫床。
這份設定檔既解決了中文長段落折行卡頓的多年頑疾,又透過 Goyo、Limelight、vim-markdown 與 Tagbar 構建了無可挑剔的視覺與導航體驗。將這份紀錄留作備份,也希望能幫助到每一位在終端機前默默敲擊鍵盤的故事講述者。
以實際行動支持獨立觀點,與我們一同走得更遠
每一篇條理清晰的分析、每一次不隨波逐流的觀察,背後都是對真實與品質的堅持。我們拒絕內容農場與演算法流量綁架,堅持自由獨立的客觀發聲。
維持高品質的原創寫作與獨立營運,需要持續的實質力量。您可以選擇一次性贊助或每月定期支持,透過 Google 安全結帳,與我們一同守護這份深刻與清醒。
由 Google 安全處理付款 · 可隨時於 Google 帳戶管理或取消




留言板