【问题标题】:Reliable C context window可靠的 C 上下文窗口
【发布时间】:2011-04-21 05:45:26
【问题描述】:

我最近开始使用ctx Vim 插件。这个插件提供了一个“上下文”窗口,显示范围层——函数定义、for循环、if语句等——一直到当前行。真的很棒! ..理论上。在实践中,我发现它并不是那么可靠。我可能只是运气不好;到目前为止,我真的只尝试在一个文件上使用它。

例如,在vim的src/ex_getln.c中的ExpandFromContext函数内,函数签名不显示,只显示左大括号。

这个插件已经很老了(最后一次更新是 2002 年),author 似乎已经转向了非 C 语言的东西(看起来主要是 clojure 开发)。因此,提交错误报告似乎没有多大意义。

是否有这个插件的分支或另一个提供更可靠解析的插件?

【问题讨论】:

    标签: c vim scope


    【解决方案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>
    

    【讨论】:

    • 嗯,它只是其中的一部分,因为它只显示函数定义而不显示其他块,但无论如何它可能很有用。我不确定它有多可靠,但它确实适用于相关功能。请注意,您可以将'n' 标志传递给search(),以避免将光标向后移动。
    【解决方案2】:

    可能是插件也过时了,因为同时还有一些很好的其他 Vim 功能,至少 - 折叠,6种方法(:帮助折叠), - 使用文本对象 (:help text-objects)。

    【讨论】:

    • 我对这两个都很熟悉,但是反复执行[zk[zk ... 然后^o^o...zczc...zczz 然后zozo... 有点麻烦,尤其是在跳跃时(通过@ 987654325@,快速修复/位置列表等)进入深度嵌套代码的中间。这不仅是一件麻烦事,还会分散我的注意力,打断我的注意力。
    【解决方案3】:

    也许SrcExpl 适合你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多