在 Vim 中自动插入左括号

在 Vim 中自动插入左括号

我正在尝试在 Vim 中编写一些 Objective-C 代码,而 Xcode 缺少的一项功能是自动插入左匹配括号的功能。

假设我有以下文本:

NSString *string = [NSString alloc] init

并且在行尾插入']',然后我希望它完成到:

NSString *string = [[NSString alloc] init]

有任何想法吗?

答案1

这是一个不错的功能。

除了使用环绕,我不知道确切的解决方案。

t使用环绕功能,从中init的 上的光标开始NSString *string = [NSString alloc] init

  1. v进入视觉模式
  2. F[选择到第一个为止的所有内容[
  3. s]围绕它[]

vF[s]从长远来看可能会很乏味,如果没有更好/更智能的解决方案,您可以进行如下愚蠢的映射:

inoremap ]] vF[s]

答案2

这个插件可能就是你要找的东西。我还没有亲自试过,但它似乎能起到作用。

例如,|光标在哪里:

"foo|" becomes "[foo |]" after ] is pressed.
"foo bar|" becomes "[foo bar]|"
"foo: bar|" becomes "foo: [bar |]"
"foo bar: baz|" becomes "[foo bar: baz]|"

某些有用的关键字也会被智能包装

相关内容