2

由于我一直在进行大量的 javascript 开发,因此我正在尝试找出一种方法来执行以下操作。

给出以下行:

var someFunc = function() {};

进入:

var someFunc = function() {
  // proper indenting -- cursor placed here
};

我想让vim通过按回车键从插入模式执行此操作。重新映射实际间距的输入键很容易,但我发现的问题是检查以确保我在大括号内。

任何帮助都会很棒!

谢谢!

4

1 回答 1

3

有很多方法可以做到这一点。还有许多类似的问题在这里和超级用户。

假设您的光标在那里并且您处于插入模式:

var someFunc = function() {|};

这个映射会做你想做的事:

inoremap <C-Return> <CR><CR><C-o>k<Tab>

假设您的光标位于该行的其他位置并且您仍处于插入模式,则此映射将起作用:

inoremap <C-Return> <Esc>$T{i<CR><CR><C-o>k<Tab>

因为它更通用,所以第二个映射将为您的直接问题提供一个很好的解决方案。

但是您也可以使用像DelimitMate(还有其他)这样的插件来插入右括号并为您执行“括号打开”。

片段(SnipMate ( original , fork ), UltiSnips其他)也很有用:键入fun后跟<Tabs>当然是编写完整函数定义存根的好方法。

于 2012-12-17T08:39:05.767 回答