2010-01-18 23 views
0

我正在使用Vim腳本。我的一個功能需要像輸入「:clist」時獲得的臨時顯示。我不想要一個全新的緩衝區,因爲我太懶惰了,我更喜歡只鍵入一個鍵來刪除信息。echo命令的語法高亮文件(VIM)?

我被卡住了echo命令的語法高亮顯示。我想申請一個完整的語法文件,但到目前爲止,我剛剛看到「:echohl」,並且我只能應用一個語法規則。我試過了一個語法集羣,但這也不起作用。

「:echohl」和語法集羣正確的路要走嗎?

回答

1

我不確定你是否會設法使用echo和消息列表來做到這一點。

解決這個問題的好方法是創建一個新的緩衝區,並將感興趣的內容放入該緩衝區。然後將緩衝區設置爲nomodifiablenomodifiedbuftype=wipe。如果需要向緩衝區添加更多數據,請添加數據,然後set noma nomod bh=wipe。將文件類型設置爲自定義,併爲您所需的語法編寫語法文件。

將緩衝區名稱設置爲符合您的要求的特定內容。

最後,鍵盤快捷鍵或命令映射到類似:

map @ :exe 'bufdelete' bufnr('MyBufferName')<CR> 

這將使@鍵關閉緩衝區(從而爲您提供刪除信息的一個重要手段)。當然,您可以通過將其放入函數中並在刪除緩衝區之前檢查緩衝區是否存在,但現在將其保留爲練習(如果您有任何問題,請告知我)。

一個現有的插件,做一些相當類似的事情是Dr Chip's RunView plugin。看看源代碼,看看它是否有幫助。如果您需要更多幫助,請對此帖添加評論。