0

当我在 C/C++ 中编码时,当我输入“{”时,我通常希望接下来的几个字符是换行符、制表符、换行符,并以“}”结尾。这对于自上而下的编程特别方便,因此您可以制作函数的格式并继续,只是稍后再回来,它已经为您制作了原型。

因此,为了澄清,我希望将 '{' 替换为

{\n\t\n}

这在vim中是否可能,如果可以,如何?

4

4 回答 4

1

你可以吗?

inoremap { {<cr>}<esc>O<tab>

使用此映射,如果您foo{在 INSERT 模式下键入,它将更改为:

foo {
    I
}
  • I是光标位置。
于 2013-02-10T18:01:15.660 回答
1

您可能有兴趣尝试一些可用的“自动关闭”插件。我使用DelimitMate但您可以尝试AutoCloseAutoPair

于 2013-02-10T19:16:08.577 回答
0

你有一堆 yank 寄存器。也许最简单的解决方案是将其拉到指定的寄存器中,然后在每次需要时从该寄存器中放入。

于 2013-02-10T19:22:11.243 回答
0

对于那种带有“自动原型”的“自上而下”编码,片段插件非常棒。

使用片段插件,您可以进行更广泛的“自上而下”编码,而不仅仅是扩展括号。

Ultisnips是一个很棒的片段插件。如果你的 vim 中没有 python 支持,那么Ultisnips的前身 SnipMate 也很强大,但没有那么先进。

使用 Ultisnips,您可以使用以下三个片段中的任何一个:

1)创建括号并将光标放在它们后面

snippet {
{

}
$1
endsnippet

2)创建括号并将光标放在其中

snippet {
{
    $1
}
endsnippet

3)创建括号并将光标放在其中,然后Ctrl-j将光标放在括号后面

snippet {
{
    $1
}
$2
endsnippet

但是除了像这三个这样的简单片段之外,您还可以变得更加复杂,在片段中定义整个函数/类/等模板,这些模板可以快速扩展和跳转。

于 2013-02-11T15:56:39.940 回答