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
。你可以在这句话中交换东西,它仍然有效 vaw
、dil
、cB
等等。 vim 的力量很大程度上基于这个概念。
当然,您可以编写一个函数,首先执行 vaw
,然后执行 S-v
,最后执行 va{
,但这仅适用于视觉 selection。它不适用于 c
或 d
或任何东西。所以我会建议习惯使用不同的键来执行不同的操作。
视觉 selection 基本上不需要。改个段子?直接用ca}
等。
试试这个插件:https://github.com/terryma/vim-expand-region
它根据 Vim 的文本对象扩展选择。
我发现 VI/VA + WOBO(根据需要扩展多少次)的工作原理类似。不是那么快,但它是相同的概念,你甚至可以 expand/shrink 不对称地基于你的 WO 和 BO(或者 OW 和 OB,取决于你如何看待它)
如何才能达到同样的结果。我相信 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
。你可以在这句话中交换东西,它仍然有效 vaw
、dil
、cB
等等。 vim 的力量很大程度上基于这个概念。
当然,您可以编写一个函数,首先执行 vaw
,然后执行 S-v
,最后执行 va{
,但这仅适用于视觉 selection。它不适用于 c
或 d
或任何东西。所以我会建议习惯使用不同的键来执行不同的操作。
视觉 selection 基本上不需要。改个段子?直接用ca}
等。
试试这个插件:https://github.com/terryma/vim-expand-region
它根据 Vim 的文本对象扩展选择。
我发现 VI/VA + WOBO(根据需要扩展多少次)的工作原理类似。不是那么快,但它是相同的概念,你甚至可以 expand/shrink 不对称地基于你的 WO 和 BO(或者 OW 和 OB,取决于你如何看待它)