vim auto-pairs remove/umwrap pair of brackets

标签 vim

我有点困惑 vim 自动配对 ( https://github.com/jiangmiao/auto-pairs ) 是否可以成对移除/解包。例如,如果您有 (foo)是否可以删除第一个或第二个括号并同时删除它们?文档说:

g:AutoPairsMapCh

Default : 1

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

但我不明白这是不是我要找的。我在 insert 中都试过了和 normal模式(即在光标位于括号上时按 <Control-h>)并且它似乎不起作用,除非存在其他问题(例如 <Control-h> 绑定(bind))。我还检查了变量 echo g:AutoPairsMapCh并返回 1

最佳答案

对删除自动配对的支持仅限于它们之间没有任何内容(除了空格)时才有效。

g:AutoPairsMapBS启用的代码, backspace 键,和 g:AutoPairsMapCh , 对于 <C-h>序列(在某些系统中通常由退格键发送),默认情况下都启用它们,仅当在插入模式下使用退格键(或 <C-h> )删除左括号时,当光标后的下一个是右括号时才有效括号(中间可能有一些空格。)

如果您写错了一组括号并想要更正,此功能很有用。例如,如果你想写 foo(bar) , 但你写 foo{ , 自动配对完成 foo{} (光标位于花括号之间),您可以简单地使用 basckspace 删除两对,回到 foo , 然后你可以输入 (barfoo(bar) .

如果您将光标放在 b 上,它实际上不起作用在“栏”中,即使在插入模式下,按退格键或 <C-h> .它将删除 ( , 但由于 )不在光标之后,它不会真正删除它。

因此,此功能对于立即更正发现的小拼写错误最有用,而不是修改已经存在一段时间的代码对。更重要的是,如果您现在遇到问题,您可以像往常一样纠正它,而不是特意删除为您自动配对插入的不需要的右括号...

如果您想要一个插件来帮助处理文本中已有的括号,并且可以插入、删除它们、用其他括号组替换它们等等,请查看 Tim Pope 的优秀 surround.vim ,它定义了强大的普通模式命令来管理成对的圆括号、方括号、引号、XML 标记等。

关于vim auto-pairs remove/umwrap pair of brackets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60954163/

相关文章:

vim - 如何在 vim 中实现项目特定的缩进?

VinyL 无限打印列表中的值

vim - 使用 Vim(不是 gvim)通过 GDB 调试 Go

c++ - 你在 Vim 中调试 C++ 代码吗?如何?

vim - MobaXterm : screen freezing

visual-studio - IDE/文本编辑器颜色设置对我们眼睛的影响

unix - 如何在一列前换行?

vim - 插入字符而不进入插入模式?

vim - 全局变量的缓冲区局部值?

vim - 我如何在 centos 6.4 中安装 ctags?