vim自动配对删除/包裹一对括号

时间:2020-03-31 15:25:21

标签: vim

我对vim自动配对(https://github.com/jiangmiao/auto-pairs)是否可以成对删除/打开包装感到困惑。例如,如果您有(foo),是否可以删除第一个或第二个括号,并且同时删除这两个括号?医生说:

g:AutoPairsMapCh

Default : 1

Map <C-h> to delete brackets, quotes in pair

但是我不知道这是否是我想要的。我在insertnormal模式下都尝试过(例如,将光标放在括号中时按<Control-h>),除非出现其他问题(例如{ {1}}绑定)。我还检查了变量<Control-h>并返回1

1 个答案:

答案 0 :(得分:3)

仅在它们之间没有空格(空格除外)时,才支持删除自动配对。

g:AutoPairsMapBS backspace 键启用的代码,{{1}为g:AutoPairsMapCh序列启用的代码(在某些系统中通常由backspace发送),这两个选项均默认启用,仅当在插入模式下使用退格键(或<C-h>)删除左括号时,光标之后的下一个对象为右括号时,才可以使用它们(可能之间有一些空格)。 )

如果您写错了一组括号并想对其进行更正,则此功能很有用。例如,如果您要编写<C-h>,但要编写foo(bar)(它会自动配对成foo{(光标放在花括号之间),则可以简单地使用basckspace删除两对,回到foo{},然后您可以键入foo进入(bar

即使将光标置于“栏”中的foo(bar)上(即使在插入模式下),然后按Backspace键或b,也无法真正起作用。它将删除<C-h>,但是由于(不在光标之后,因此它不会真正删除。

因此,此功能对纠正立即注意到的小错字最有用,而不是修改已经存在一段时间的代码对。更重要的是,如果您现在遇到问题,则可以按照通常的方式进行纠正,而不必费心去掉为您自动配对的不需要的右括号...

如果您想要一个插件来处理文本中已经存在的括号,并且可以将其插入,删除,用其他括号替换,等等,请看一下Tim Pope出色的{{3 }},它定义了功能强大的普通模式命令,用于管理括号,方括号,引号,XML标记等对。