2020年7月27日 星期一

vim 改顏色不必太認真研究細節

vim 設定顏色 前幾天用 vim 在 校閱/翻譯 gnu 網站的文章 的時候, 覺得字串的顏色好暗, 看不清楚。 本來以為需要修改 vim 輔助檔案 /usr/share/vim/vim版本/* 當中定義 .po 檔案格式的語法標示 (syntax highlight) 設定檔 syntax/po.vim, 或是要改顏色風格檔 color/*.vim。 後來找到 alvin alexander 的文章, 原來超簡單, 只要在 ~/.vimrc 裡面加一句: hi Constant ctermfg=yellow 並重進 vim, 字串顏色馬上變成亮亮的黃色, 舒服! 顏色風格檔 color/*.vim 裡面很多這樣的設定; 當然, ~/.vimrc 裡面的設定優先蓋過風格檔裡的設定。 指令 hi 是 highlight 的簡寫。 至於後面的部分呢?

第一個參數 Constant (大小寫無差別) 是指任何語言 (.html、 .svg、 .py、 .js、 ...) 的任何常數 (字串、數字、串列、...)。 每一個程式語言或檔案格式的語法設定檔 (syntax/*.vim) 都會定義 Comment、 Constant、 Identifier、 Statement、 PreProc、 Type ... 等等主要群組 (preferred groups), 所以只要設定這些群組的顏色, 就可以一體適用於所有檔案格式/程式語言的原始碼, 根本不需要研究 syntax/*.vim 。 如果希望數字跟字串要用不同的顏色呈現呢? 在 官網手冊 當中搜尋 「minor groups」 可以找到較細的群組名稱。 如果更進一步希望針對特定檔案格式/程式語言的字串或數字改顏色, 才需要研究 syntax/*.vim 。

下達設定指令時, 可以指定前景顏色及背景顏色, 所以等號左邊原本應該是 fg 或 bg。 可是 vim 有視窗版 (gui) 跟終端機版 (cterm), 前者可以顯示較細的色彩; 通常 終端機能顯示 256色 就不錯了 ( 測試你的終端機的色彩能力)。 所以這一欄可以有 ctermfg ctermbg guifg guibg 四種值。

至於顏色的名稱及實際的定義, 請見 /usr/share/vim/vim版本/rgb.txt 或者從 這一頁 可以直接看到每個顏色的名字。

沒有留言:

張貼留言

因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。