【发布时间】:2023-03-09 23:29:01
【问题描述】:
我刚刚了解了 vim 真正令人敬畏的 object-select 功能。将光标放在某个“文本对象”中,一组简单的动词可以选择或操作整个对象。例如,将光标放在下面引号内的任意位置(例如,在 'o' 上):
print "Hello, world"
^
命令vi" 将选择引号内的整个短语。相同的功能适用于 vim 定义的许多“text objects”,包括单词、句子、段落和用引号、括号和大括号括起来的字符。
但现在我希望“文本对象”这个概念能够了解我正在编写的语言。例如,考虑以下 python:
re.sub("[^A-Z ]", " ", string)
我希望能够将光标放在上面的某个位置,然后选择整个内容。函数调用是一个定义明确的句法结构,但它不是“单词”、“句子”、“段落”,也不是用引号或大括号括起来的。
是否有任何插件或 vimrc hacks 可以定义这些依赖于语言的“文本对象”?
【问题讨论】: