Vim 对象选择与语法感知文本对象

标签 vim select text syntax

我刚刚了解到真正棒的 object-select vim 的能力。当光标位于某个“文本对象”内时,一组简单的动词可以选择或操作整个对象。例如,将光标放在下面引号内的任何位置(例如在 'o' 上):

print "Hello, world"
           ^

命令 vi"将选择引号内的整个短语。相同的功能适用于 vim 定义的许多“text objects”,包括单词、句子、段落和用引号、括号和大括号括起来的字符。

但是现在我希望“文本对象”的概念能够了解我正在编写的语言。例如,考虑以下 python:
re.sub("[^A-Z ]", " ", string)

我希望能够将光标放在某个地方,然后选择整个内容。函数调用是一个定义明确的句法结构,但它不是“单词”、“句子”、“段落”,也不是用引号或大括号括起来。

是否有任何插件或 vimrc hack 定义了这些依赖于语言的“文本对象”?

最佳答案

This script使用缩进来定义文本对象。如果您根据通用标准进行格式化,它将适用于多种语言,并且保证适用于 python。

关于Vim 对象选择与语法感知文本对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3196424/

相关文章:

vim - 每 4 行只保留第一行并删除其他行

python - 如何在 vim 中获取 Python 帮助?就像vim一样使用:h

sql - 每天特定比萨饼地点的平均比萨饼订单-SQL

c# - 如何以编程方式将文本转换为 prc/mobi 文件?

android - 在android上的矩形中自动调整文本

vim - 按名称在 Vim 中查找 Action

vim phpdoc 多行注释自动缩进

mysql - 对非规范化数据的简单 SELECT 查询

mysql - 这是使用 mySql 选择与表不同的正确方法吗?

c - 从 .txt 文件中读取一行并将其拆分为 float