2011-04-21 27 views
0

我最近開始使用ctx Vim插件。這個插件提供了一個「上下文」窗口,用於顯示範圍層次 - 函數定義,循環,if語句等 - 直至當前行。這真的太棒了! ..理論上。在實踐中,我發現它並不全是可靠的。我可能只是運氣不好;到目前爲止,我真的只試圖在一個文件上使用它。可靠的C語境窗口

例如,在vim的src/ex_getln.c中的ExpandFromContext函數中,函數簽名不會顯示,只是大括號。

這個插件相當陳舊(2002年的最後一次更新),author似乎已經轉移到了非C的東西(看起來大部分是clojure開發)。因此,提交錯誤報告似乎沒有太多意義。

是否有這個插件的叉或另一個提供更可靠的解析?

回答

0

可能是插件也是過時的,因爲有一些很好的Vim的其他特徵,同時,至少 - 摺疊,6種方法(:幫助摺疊), - 用文本對象(工作:幫助文本 - 對象)。

+0

我對這兩個都很熟悉,但是反覆做'[zk [zk ...],然後'^ o^o ...'或者'zczc ... zczz',然後'zozo .. .'特別是在通過'^]',quickfix/location列表等跳轉到深度嵌套代碼的中間時更是如此。這不僅是一件麻煩事,它還是一種分心,並打斷了我的注意力。 – intuited 2011-04-21 18:01:45

1

雖然基本這個功能對我很有幫助。從一個朋友那裏得到它,從一個網站得到它,所以沒有聲稱任何作者。它添加到您的vimrc獲取當前功能你是我只用它在C/C++:

fun! ShowFuncName() 
    let lnum = line(".") 
    let col = col(".") 
    echohl ModeMsg 
    echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bW')) 
    echohl None 
    call search("\\%" . lnum . "l" . "\\%" . col . "c") 
endfun 

noremap <silent> <F3> :call ShowFuncName() <CR> 
+0

那麼,它只是在那裏,因爲它只顯示函數定義而不顯示其他塊,但它可能會有用。我不確定它會有多可靠,但它確實對這個功能有用。請注意,您可以將''n''標誌傳遞給'search()'以避免必須將光標移回。 – intuited 2011-04-21 18:27:51