我最近开始学习 Vim,并被它关于更改/删除文本对象的行为所困扰,特别是被花括号包围的代码块。
这是代码示例:
function main() {
console.log("Hello world");
}
Run Code Online (Sandbox Code Playgroud)
如果我将光标移动到单词 function 的开头并输入以下组合:di{Vim 将按预期删除函数体。
但是,如果我将函数移到类中:
class Program {
main() {
console.log("Hello world");
}
}
Run Code Online (Sandbox Code Playgroud)
然后将光标移动到单词的开头main并再次输入相同的组合 Vim 将删除类的主体,而不是函数。
有人可以向我解释它是如何工作的,是否有任何解决方法,或者有经验的 vim 用户在这种情况下会做什么来实现我想要做的事情?