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

问题描述 投票:0回答:2

我开始在日常编码中使用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 mapping
2个回答
5
投票

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

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

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

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


0
投票

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

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.