在vim中跳过用户定义的文本对象

我使用kana /
vim-textobj-user来定义一些自定义用户对象,但问题是我无法跳过它们:例如

假设我使用的是由ai和ii映射的相同缩进文本对象

我想在正常模式下跳转文本,比如]和[i

目前我正在使用一种非常黑客的选择和退出视觉模式的方式

那么有一种简单的方法可以做到这一点,并为所有其他用户文本对象提供某种映射.

像{text-object}这样的东西 最佳答案

I am using the kana / vim-textobj-user for defining some custom user objects
[…]
let’s say I am using the same indent text object which is mapped by ai and ii
I want to jump around the text in normal mode something like ]i and [i

Vim有一堆内置命令,比如] m,[M等等.所以我认为你的意思是] i / [i将光标移动到下一个/上一个文本对象.如果是这样,vim-textobj-user自第一次发布以来就支持文本对象的selectingmoving.但这不是自动的.至少你必须声明要用于命令的键(例如)i / [i).

但我想知道以下的事情:

currently I am using a very hacky way of selecting and exiting visual mode

所以你打字就像vaio< Esc>和vai< Esc>?你想要做的是将光标移动到光标下文本对象的第一行/最后一行?如果是这样,vim-textobj-user当前不提供API来定义这样的命令.

在这种情况下,可能可以自动定义键映射,如nmap] i vai< Esc>.但它似乎很脆弱,并且覆盖了几个内置命令.

点赞