如何匹配引号,自动括号括号括号和括号中的括号?
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自己的y
,p
和P
命令。
对于第一个选项,请参阅:help 'paste'
和:help 'pastetoggle'
。
对于第二个选项,请参阅:help y
,:help p
,:help registers
和:help 'clipboard'
。请注意,您可能需要使用剪贴板支持构建的Vim。
另一答案
尝试一下rainbow插件。它突出显示括号对,并通过更改突出显示颜色来指示您所处的“深度”。
以上是关于如何匹配引号,自动括号括号括号和括号中的括号?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio 中关闭括号/引号自动完成