我想删除文件中每个大括号{}之间的所有文本(包括大括号本身)。我知道命令%d在光标下的大括号之间删除了文本,但是我想自动为所有文档制作它。
实施例: 我有类似的东西:
using UnityEngine;
using System.Collections;
public class ssj : MonoBehaviour {
IEnumerator ShowMessageCoroutine(string message, float timeToShow = 10)
{
// Show the text
text.text = message;
// Wait for 10 seconds
float timeShown = 0f;
while (timeShown < timeToShow)
{
timeShown += Time.deltaTime;
yield return null;
}
// Hide the text
text.text = "";
}
}
我希望有类似的东西:
public int getMinimum() {
return min;
}
public void setMinimum(int min) {
this.min= min;
}
答案 0 :(得分:3)
您可以使用global命令执行此操作:
:g/{/normal f{da{
这样做:对于包含{
的所有行,移至该行的第一个* {
并从中删除所有内容,包括匹配的}
。
如果您想在最后添加;
- 我怀疑这是您想要的下一件事 - 您可以在该命令的末尾添加A;
。< / p>
请注意,如果您的文件中包含{}的注释或字符串,则可能会中断。
*如果该行的第一个字符是{
,并且它包含另一个 {
,则实际上会转移到第二个{
。在这种情况下不太可能发生,但值得记住。我认为在这种情况下你可以做f{F{
,虽然我认为应该以某种方式跳转到第n个角色或某事,但我不知道那个命令会是什么。
答案 1 :(得分:1)
将光标放在{
或}
,然后v%d
。
答案 2 :(得分:0)
如何使用着名的vim dot命令?
/{
d%
现在根据您的需要多次使用n.
。
还想自动化吗?录制宏:
qqn.q
99@q
如此完整的序列将是:/{<cr>d%qqn.q99@q
为什么这样?因为它很直观,而且它完全是vim的方式,你可以适应任何情况。