如何在 VIM 编辑器中自动完成单双引号、括号等?

如何在 VIM 编辑器中自动完成单双引号、括号等?

我需要每次写单引号或双引号、圆括号、花括号、方括号时,vim 会自动创建结束括号并将光标放在里面,以便轻松继续编辑。我注意到大多数编辑器都这样做。

我需要它适用于每种编程语言。PHP、JS、JQUERY、HTML、CSS……但不使用代码片段,因为代码片段需要快捷键或键盘映射才能做到这一点(效率不高)。我需要这个自动完成功能在按下“”键后自动运行。

答案1

有可用的插件(例如 delimitMate)提供此功能。或者,您可以创建自己的映射。可以在此处找到更大的插件列表以及潜在映射的详细讨论:http://vim.wikia.com/wiki/Automatically_append_closing_characters;一般来说映射类似于:

inoremap        (  ()<Left>
inoremap <expr> )  strpart(getline('.'), col('.')-1, 1) == ")" ? "\<Right>" : ")"

但是,目前(截至 Vim 7.4.781)此类映射以及您安装的任何插件都会破坏撤消/重做/重复,因此需要两个撤消步骤才能删除您输入的文本:1 删除括号内的内容,1 删除括号本身。如果您愿意编译自己的 Vim,可以使用补丁程序来修复此问题:https://groups.google.com/forum/#!topic/vim_dev/gBumYDSEJoo/discussion

答案2

您必须为此安装插件。是一个示例插件。它更容易使用崇高的文本比任何其他编辑器都更简单、更轻便。

相关内容