Vim:删除与Neovim中相同的匹配分隔符内部

nbewdwxp  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(148)

作为Neovim用户,我可以键入di((也可以是di"di{等),以便删除由匹配的方括号/引号分隔的内容。

(cursor here) 
 /
void foo(int bar)
-

通过运行di(,我会得到

(cursor here) 
         /
void foo()
        -

通过运行da(,我会得到

(cursor here) 
        /
void foo
       -

然而,在vim中,只有先将光标放在起始括号/引号上才能实现此行为。

(cursor here) 
         /  
void foo(int bar)
        -

因此,在vim中,我必须根据光标在行上的位置运行f(di(F(di(,以便将光标移动到起始分隔符,然后删除内容。在neovim中,我可以直接运行di(,获得相同的结果。
是否有任何重新Map,我可以设置,以使vim的行为像neovim?

wvt8vs2t

wvt8vs2t1#

Vim曾经以不同的方式处理嵌套对(开始和结束不同)和非嵌套对(开始和结束相同),但在8.2的生命周期后期都发生了变化。
您的Neovim版本包含该补丁,但您的Vim版本不包含。
将Vim更新到8.2.3255以上的版本,您将获得所需的行为。

相关问题