【发布时间】:2014-04-18 09:38:32
【问题描述】:
我创建了以下映射来模拟某些 IDE 中的行为,当您在 foo() 之类的函数声明之后插入 { 时,会自动插入关闭 } 并自动插入空行并将光标设置为空行选项卡位置。
:imap { {<CR><CR>} <up><Tab>
当我在任何上下文中插入{ 时,这当然会发生这种行为。如何根据之前插入的字符进行操作?一定是涉及到vim脚本函数吗?
注意:我不想使用外部 vim 插件。
【问题讨论】:
-
这不是您问题的实际答案,但可以使用 sn-ps 实现类似的行为(例如snipmate plugin)
-
让我直截了当地说,你想完成一些类似 IDE 的功能,在你的
~/.vimrc文件的一行中嗅探一行的语法吗?这将导致幼稚的imap在许多情况下必然会失败。这是一种平衡行为,您要么获得仅在部分时间正确的简单映射,要么使用更高级的解决方案,该解决方案需要更好的功能或插件。您反对函数或使用插件有什么问题?