2009年11月8日 星期日

在vim中設定特殊字的顏色

寫過程式的人都知道,若整個程式的內容都是用白底黑字來顯示的話,會整個眼睛都花掉!
所以,現在大部分的程式編輯器都會根據某一種特定的檔案型態(像是.c檔或是.cpp檔)
則會把某一些特定的字顯示成不同的顏色(像是int, bool, float)。

而在vim編輯器中也不例外,現在寫的都是.c檔,但是,在UEFI中,會自己自訂一些型別,像是IN, OUT, BOOLEAN, INT...之類的。

在gvim中,所有類型的syntax設定檔均會放在syntax資料夾中,因為,我現在要設定.c檔的syntax,我直接到syntax資料夾中的c.vim去修改,新增以下內容
c.vim

if !exists("UEFI")
syn keyword cType BOOLEAN
syn keyword cType INTN INT8 INT16 INT32 INT64
syn keyword cType UINTN UINT8 UINT16 UINT32 UINT64
syn keyword cType CHAR8 CHAR16
syn keyword cType VOID CONST STATIC VOLATILE
syn keyword cConstant IN OUT OPTIONAL
syn keyword cConstant TRUE FALSE
syn keyword cConstant UNALIGNED
syn keyword cConstant EFI_RUNTIMESERVICE EFI_BOOTSERVICE
syn keyword cConstant EFI_BOOTSERVICE11 EFI_BOOTSERVICE20
syn keyword cConstant EFI_TIME_ADJUST_DAYLIGHT EFI_TIME_IN_DAYLIGHT
syn keyword cConstant EFI_UNSPECIFIED_TIMEZONE
syn keyword cType EFI_STATUS EFI_HANDLE EFI_EVENT EFI_TPL
syn keyword cStructure EFI_GUID EFI_GUID_UNION EFI_TIME
syn keyword cStructure EFI_SYSTEM_TABLE
syn keyword cStructure EFI_IPv4_ADDRESS EFI_IPv6_ADDRESS EFI_MAC_ADDRESS EFI_IP_ADDRESS
syn keyword cStructure EFI_MEMORY_TYPE EFI_ALLOCATE_TYPE
syn keyword cStructure EFI_STATUS_CODE_TYPE EFI_STATUS_CODE_VALUE
syn keyword cStructure EFI_STATUS_CODE_DATA EFI_TABLE_HEADER
syn keyword cConstant EFI_MEMORY_UC EFI_MEMORY_WC EFI_MEMORY_WT EFI_MEMORY_WB EFI_MEMORY_UCE
syn keyword cConstant EFI_MEMORY_WP EFI_MEMORY_RP EFI_MEMORY_XP
syn keyword cConstant EFI_MEMORY_PRESENT EFI_MEMORY_INITIALIZED EFI_MEMORY_TESTED
syn keyword cConstant EFI_MEMORY_PORT_IO
syn keyword cConstant EFI_MEMORY_RUNTIME
syn keyword cType EFI_PHYSICALL_ADDRESS EFI_VIRTUAL_ADDRESS
syn keyword cConstant EFI_MEMORY_DESCRIPTOR_VERSION
syn keyword cStructure EFI_MEMORY_DESCRIPTOR
syn keyword cConstant EFI_PAGE_SIZE EFI_PAGE_MASK EFI_PAGE_SHIFT
syn keyword cStructure EFI_PLABEL
syn keyword cStructure EFI_GCD_MEMORY_TYPE EFI_GCD_IO_TYPE EFI_GCD_ALLOCATE_TYPE
syn keyword cStructure EFI_GCD_MEMORY_SPACE_DESCRIPTOR EFI_GCD_IO_SPACE_DESCRIPTOR
endif


Q: 這裡有一個問題,應該是要設定成exists("UEFI")時,才顯示這一些型別的顏色,但是,現在不知道如何設定變數,所以,先暫時設定成每一次打開,都會以UEFI為顯示的方式,也就是設定為(!exists)!

另外,別人有寫出類似佈景主題的東西,可以到這裡下載

得知目前 Vim 的顏色配置的方法就是:
:highlight

參考資料:
更改 Vim 各項目的顏色

沒有留言: