我刚刚了解了vim 真正令人敬畏的对象选择功能.将光标放在某个"文本对象"中,一组简单的动词可以选择或操作整个对象.例如,将光标放在下面引号内的任何位置(例如,在'o'上):
print "Hello, world"
^
Run Code Online (Sandbox Code Playgroud)
该命令vi"
将选择引号内的整个短语.相同的功能适用于vim定义的许多" 文本对象 ",包括用引号,括号和大括号括起来的单词,句子,段落和字符.
但是现在我想要一个"文本对象"的概念来了解我正在编写的语言.例如,考虑以下python:
re.sub("[^A-Z ]", " ", string)
Run Code Online (Sandbox Code Playgroud)
我希望能够将光标放在某处,并选择整个事物.函数调用是一个定义明确的语法结构,但它不是"单词","句子","段落",或用引号或括号括起来.
是否有任何插件或vimrc hacks定义了这些与语言相关的"文本对象"?