VIM:仅考虑当前代码块
我已经开始开发一个巨大的PHP应用程序,每个文件中有数千行代码,同一个文件中有很多巨大的if块、类和函数。我不是唯一的开发人员,所以我不能重构 我尝试过使用标签列表插件,但它并没有真正的帮助。有没有办法让VIM只考虑一个特定的代码块,而忽略文件的其余部分?我希望获得以下部分或全部功能:VIM:仅考虑当前代码块,vim,Vim,我已经开始开发一个巨大的PHP应用程序,每个文件中有数千行代码,同一个文件中有很多巨大的if块、类和函数。我不是唯一的开发人员,所以我不能重构 我尝试过使用标签列表插件,但它并没有真正的帮助。有没有办法让VIM只考虑一个特定的代码块,而忽略文件的其余部分?我希望获得以下部分或全部功能: 仅为当前代码块启用行号,从包含开头{的行的1开始,并对其前面或结尾}之后的行不显示编号 使用/搜索将仅限于有问题的块 我的思路是,在启用模式时选择当前块并在新缓冲区中编辑它,然后在退出模式时用编辑过的块替换现有块
/
搜索将仅限于有问题的块map <F7> <Esc>mO<C-V>aBy:new<Return>p:set nu<Return>:set ft=php<Return>ggi<?php<Return><Esc>
map <F8> <Esc>ggdd<C-V>aBx:bp<Return>`O<C-V>aBp
map-mOaBy:newp:set-nu:set-ft=phpggi即使这不是您想要的解决方案,我认为以下内容可以帮助您解决问题
您可以使用,它按PHP语法折叠(函数、类、方法、PhpDoc…)
然后,您可以通过在关闭的折叠上按v$
选择折叠,并使用:which
执行所需的任何操作。例如,:s/this/self/g
将折叠中的所有this
替换为self
。当您按下:
,vim将自动添加”如果vim允许您要求的行号,我会非常惊讶
(和1或2个类似的IIRC)允许您直观地选择当前文件的一个区域,在另一个缓冲区中对其进行处理,并将所有内容放回原始文件中的位置(位于:w
请参见函数限制搜索:@kikuchiyo:这对于偶尔搜索很有帮助,但对于在块中进行大量搜索很繁琐。因此,我们希望为感兴趣的块提供一个单独的缓冲区。谢谢,这些插件看起来可能满足了我的需要。