从函数声明的第一个字符移动到VIM中的结束括号

时间:2011-12-02 23:02:52

标签: vim

如果我有一个声明的函数:

public static void main(String[] args){
    blahblahlbah;
}

无论如何从public中的“p”移动到函数的结尾“}”?

可以假设方法体具有相当长的长度,如果有所不同,确实包含花括号。

谢谢!

4 个答案:

答案 0 :(得分:5)

尝试此键序列:f{%应该这样做。

答案 1 :(得分:4)

没有几种方法可以完成这项运动。

最合适的动作命令是

]M

这是短的到点:它将光标移动到下一个的末尾 类似Java的源代码中的方法。

还有三个卫星动作与]M一起给出 跳转到下一个或上一个方法的开始和结束的可能性,请参阅:help ]m及以下。因此,除了]M之外,在这种情况下我们可以 问题

]m%

答案的其余部分包含对应该使用的一些技巧的讨论 只有由于某种原因上述动作命令失败 在你的情况下解决问题。

另一个利用的简单想法是跳过参数列表, 找到下一个开口花括号并转到其结束对应物

%l%

f{%

甚至

  

/% 输入 %

将光标移动到方法主体的最开头的类似想法 而跳转到下一个无与伦比的结束大括号导致以下 命令,

j]}

但请注意,最后四个命令中的三个仅在函数中有效 标题是一行。如果不是这样,他们需要修改。

在对代码格式化的一些假设下,也可以实现 使用纯文本导向运动的结果相同。如果开口卷曲 大括号是方法标题行中的最后一个字符,可以使用

$%

g_%

如果该大括号是最后一个非空白字符。

总而言之,坚持]M运动,只要它适合你(它 在绝大多数情况下,应该依靠基于的技巧 其他文本动作命令的组合,否则。

答案 2 :(得分:1)

/{会将您带到左大括号,%会跳到匹配的结束位置。

答案 3 :(得分:1)

][移至第一列中的下一个}。所以只要你的函数正确缩进,这对你有用。

请参阅:help ][:help section

我在搜索文件时使用它,我的光标位于某个长函数中间的特定搜索结果上。通常情况下,我想知道我在哪个函数中][%让我进入函数签名,然后n将我返回到我开始的搜索结果。