vim - 如何在vim中删除所有大括号{}之间的文本

标签 vim

我想删除文件中每个大括号 {} 之间的所有文本(包括大括号本身)。我知道命令 %d 删除了光标下大括号之间的文本,但我想为所有文档自动生成它。

例子:
我有这样的事情:

public int getMinimum() {
    return min;
}
public void setMinimum(int min) {
    this.min= min;
}

我想要这样的东西:
public int getMinimum()
public void setMinimum(int min)

最佳答案

您可以使用 global 执行此操作命令:
:g/{/normal f{da{
这样做:对于所有包含 { 的行,移至第一个* {在该行删除所有内容,包括匹配的 } .

如果要添加 ;最后 - 我怀疑这将是您想要的下一件事 - 您可以添加 A;在该命令的末尾。

请注意,如果您的文件中有包含 {} 的注释或字符串,这可能会中断。

* 如果该行的第一个字符是 { ,它包含另一个 { ,这实际上将移动到第二个 { .在这种情况下不太可能发生,但值得牢记。我认为在那种情况下你可以做 f{F{ ,虽然我认为应该有某种方法可以跳转到第 n 个字符之类的,但我不知道该命令是什么。

关于vim - 如何在vim中删除所有大括号{}之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39337075/

相关文章:

vim - 在 Vim 中捕获 shell 命令的输出

Vim - 在可视模式下复制/粘贴时保留最后复制的文本

linux - 如何将普通模式映射到 vim 键盘上的修改键(比如 Alt)?

javascript - Neovim 在没有配置的情况下执行不需要的 Linting

vim - 具有RSI类型症状(无法使用的手指)的代码创建/编辑器的软件要求

vim - 使用 for 循环在 Vim 中写行

python - 通过 VIM 选择 Python 函数的最快方法是什么?

vim - Vim 脚本中的 mapleaders <Leader> 和 <leader> 有什么区别?

vim - Vim 中的列编辑

vim - 如何在 VIM 中折叠 YAML 项目?