2011-10-11 71 views
5

我想爲vim實現一個語法文件,該文件隱藏文件中的某些字符。具體來說,我想編寫一個改進的熒光筆來閱讀Markdown文件,它不會顯示一些格式化字符,而是傾向於隱式指示它們。例如,我想有類似的東西呈現*bold*簡單地bold以大膽的文字,或有標題像Vim語法突出顯示隱藏字符

My Header 
========= 

沒有表現出應有的下劃線,而只是出現不同的顏色。我還沒有設法找到任何可以隱藏顯示中特定字符的vim語法文件的例子。這在vim中是可行的嗎?如果是這樣,怎麼樣?

+5

我不能把手指放在它上面,但這聽起來像一個可怕的想法。 Vim用於編輯文本,而不是將其渲染掉(當然,除了摺疊)。 – Bradford

+1

如果你想Wysiwyg體驗尋找插件,使瀏覽器窗口與編輯的降價文檔同步。我不記得它是哪一個,但之前曾經討論過 – sehe

回答

10

要隱藏語法項目 - 或只是某些字符 - 可以使用隱藏或忽略參數。見

:help hl-Ignore 
:help syn-conceal 

有關示例看到的語法文件「help.vim」,這是crefvim一部分。 CRefVim是嵌入在Vim幫助系統中的C參考手冊。 「help.vim」語法文件擴展了幫助文件的標準語法高亮顯示。

一個例子。在「$」字符,這裏用來顯示斜體文本:

example on how to use Ignore syntax argument, help.vim

也許這個例子是一個很好的起點,爲您進一步的挖掘......

哈比

1

你可以使用「粗體」,「斜體」等來創建自己的語法文件,並使用相應的colortheme。它不會隱藏任何東西,所以你的語法必須與原始文本一起工作。 例如,這可能是你的頭

在你的語法語法,你將需要:

syn match Header '^\s*\u*\.\s.*$' contains=ALL 
hi link Header ModeMsg 

,並在colortheme

hi ModeMsg gui=bold guifg=NONE guibg=NONE cterm=bold ctermfg=NONE ctermbg=NONE term=bold 

然後頭這樣

1. This is my new header, being bold 

將顯示爲粗體,根本沒有任何標記。順便說一下,您可以使用TOhtml功能導出它,同時保持突出顯示。