我刚刚了解了
vim真正令人敬畏的
object-select功能.将光标放在某个“文本对象”中,一组简单的动词可以选择或操作整个对象.例如,将光标放在下面引号内的任何位置(例如,在’o’上):
print "Hello,world" ^
命令vi“将选择引号内的整个短语.相同的功能适用于vim定义的一些”text objects“,包括用引号,括号和括号括起来的单词,句子,段落和字符.
但是现在我想要一个“文本对象”的概念来了解我正在编写的语言.例如,考虑以下python:
re.sub("[^A-Z ]"," ",string)
我希望能够将光标放在某处,并选择整个事物.函数调用是一个定义明确的语法结构,但它不是“单词”,“句子”,“段落”,或用引号或括号括起来.
是否有任何插件或vimrc hacks定义了这些与语言相关的“文本对象”?
解决方法
This script使用缩进来定义文本对象.如果您按照通用标准进行格式化,并且保证用于python,它将适用于多种语言.