我需要每次写单引号或双引号、圆括号、花括号、方括号时,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