vim扩展合同职能

时间:2015-11-30 23:44:27

标签: vim plugins

我在这两个函数之间有很多不必要的代码:

function_a()
function_irrelevant1()
function_irrelevant2()
...
function_irrelevant15()
function_b()

我想将function_irrelevant1()与function_irrelevant15()签订合同,类似于我可以用IDE做的事情,比如eclipse。

function_a()
+ function_irrelevant1()
+ function_irrelevant2()
...
+ function_irrelevant15()
function_b()

如果需要,我希望能够扩展不相关的功能,否则保持合同(内联)。

是否有插件/实用程序可以帮助我在vim中执行此操作?

1 个答案:

答案 0 :(得分:1)

正如罗曼尔所说,你正在寻找如何"折叠" 你的台词。

与vim变得复杂的地方是你有几种方法,你必须选择一种方法:

  • 折叠是自动化的,并且基于缩进,语法或更高级(或不是)插件
  • 或您的代码使用{{{1,{{{5等等
  • 等折叠标记进行寄存
  • 或折叠是手动的。

根据你的描述,vim很难结合自动折叠方法(因为我怀疑你也想折叠函数,类,控制语句)折叠你想折叠的东西,但编辑无法检测到"值得折叠"。

我害怕你需要

  • 使用折叠标记(不是很好的解决方案),
  • 或者编写一个可以完成你想要的折叠插件。唉,这不是一项简单的任务。 (对于C语言,您会找到example here,目前它不会处理do...while,也不会嵌入#if,而且它总会有折叠处于活动状态时修改代码的问题。)
  • 或者在你使用的语言的vim语法插件中注入一种方法来检测你的不相关的函数 - 这可能是你拥有的最佳选择,而不是一个微不足道的选择,但是可能会给你最好的选择。结果。