VIM 相当于 IntelliJ 的 expand/shrink 选择?

VIM equivalent of IntelliJ's expand/shrink selection?

如何才能达到同样的结果。我相信 macOS Intellij 的键绑定是 op+up/down 而在 windows 上是 alt+w/d.

本质上,该功能会突出显示当前单词,然后,通过连续按下,在 parenthesis/further 之间扩展到完整的 string/line/area 到下一组括号。对于 LISP 开发非常有用。

我得到的最接近的是:https://vi.stackexchange.com/a/19028

嗯,这可能看起来很舒服,但不符合 vim 本身的内部逻辑。

看,在 vim 中,您输入的所有内容都像一个句子。 va{ 例如:有一个动词 v -> 视觉上 select 和一个宾语(或动作){ -> 段落。在这种情况下,周围还有一个修饰符 a。你可以在这句话中交换东西,它仍然有效 vawdilcB 等等。 vim 的力量很大程度上基于这个概念。

当然,您可以编写一个函数,首先执行 vaw,然后执行 S-v,最后执行 va{,但这仅适用于视觉 selection。它不适用于 cd 或任何东西。所以我会建议习惯使用不同的键来执行不同的操作。

视觉 selection 基本上不需要。改个段子?直接用ca}等。

试试这个插件:https://github.com/terryma/vim-expand-region

它根据 Vim 的文本对象扩展选择。

我发现 VI/VA + WOBO(根据需要扩展多少次)的工作原理类似。不是那么快,但它是相同的概念,你甚至可以 expand/shrink 不对称地基于你的 WO 和 BO(或者 OW 和 OB,取决于你如何看待它)