如何匹配引号,自动括号括号括号和括号中的括号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何匹配引号,自动括号括号括号和括号中的括号?相关的知识,希望对你有一定的参考价值。

我开始在日常编码中使用vim。在我探索的过程中,我发现了使用* map。所以我决定将以下映射添加到我的.vimrc文件中。

inoremap ' ''<left> 
inoremap " ""<left> 
imap ( ()<left>
imap { {}<left>
imap [ []<left>
imap < <><left>

我的想法是匹配每个',',(,{,[,<与其结束等效。这个问题是,即使我在插入模式下粘贴,映射仍然有效。

// Pasting this 
()=>{ console.log("Hello World"); }

//Will result to something like this
())=>{} console.log())""Hello World"");}

我该怎么做才能防止这种情况发生?

答案

发生这种情况是因为您使用终端模拟器或桌面环境的快捷方式而不是Vim进行粘贴:文本未被“粘贴”,它被“插入”,就像您非常快速地键入它一样,并且触发插入模式映射。

为了防止这种情况,您可以在粘贴之前使用:set paste,然后使用:set nopaste或者您可以使用Vim自己的ypP命令。

对于第一个选项,请参阅:help 'paste':help 'pastetoggle'

对于第二个选项,请参阅:help y:help p:help registers:help 'clipboard'。请注意,您可能需要使用剪贴板支持构建的Vim。

另一答案

尝试一下rainbow插件。它突出显示括号对,并通过更改突出显示颜色来指示您所处的“深度”。

以上是关于如何匹配引号,自动括号括号括号和括号中的括号?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 中关闭括号/引号自动完成

易语言中的‘括号符不匹配’如何解决

如何用正则表达式匹配括号中的内容,不包含括号

vscode如何更改括号匹配后的颜色?

栈练习之Example005-检查一个程序中的花括号方括号和圆括号是否配对

正则表达式如何匹配提取括号中的内容