1

可能重复:
Vim 中的自动完成方法结构

所以我的 vim 上有智能自动完成功能,它在新行上自动完成 '{' 和 '}' 并将控制重定向到下一行,就像 eclipse 一样。所以输入'{'并按回车给我

{
  |
}

哪里'|' 显示我的光标位置。我想要一些 Eclipse 风格的红宝石,只要写 'def' 它应该会导致

def |
end

问题是这应该只在'def'在行首时生效,否则不生效。

4

2 回答 2

2

似乎有一个名为endwise的插件。我从未尝试过,但这听起来像你需要的。

于 2012-10-05T18:21:33.147 回答
0

为此,我还推荐一个插件。扩展文本的通用插件(但通常只有您按下和附加键才会发生扩展,例如tabsnipmate 或我最喜欢的ultisnips

使用这些带有适当片段的插件,您可以键入def<tab>它,它会扩展到您喜欢的内容。我知道 ultisnips 让您可以选择仅在行首扩展,不确定 snipmate。

如果您不想使用插件,只是为了好玩,您可以在 .vimrc 中定义以下内容,它会完成您想要的:

imap <expr> def (getpos(".")[2] == 1) ? "def\<CR>end\<UP> ":"def"
于 2012-10-05T22:41:20.883 回答