当我在 C/C++ 中编码时,当我输入“{”时,我通常希望接下来的几个字符是换行符、制表符、换行符,并以“}”结尾。这对于自上而下的编程特别方便,因此您可以制作函数的格式并继续,只是稍后再回来,它已经为您制作了原型。
因此,为了澄清,我希望将 '{' 替换为
{\n\t\n}
这在vim中是否可能,如果可以,如何?
当我在 C/C++ 中编码时,当我输入“{”时,我通常希望接下来的几个字符是换行符、制表符、换行符,并以“}”结尾。这对于自上而下的编程特别方便,因此您可以制作函数的格式并继续,只是稍后再回来,它已经为您制作了原型。
因此,为了澄清,我希望将 '{' 替换为
{\n\t\n}
这在vim中是否可能,如果可以,如何?
你可以吗?
inoremap { {<cr>}<esc>O<tab>
使用此映射,如果您foo
{在 INSERT 模式下键入,它将更改为:
foo {
I
}
I
是光标位置。您可能有兴趣尝试一些可用的“自动关闭”插件。我使用DelimitMate但您可以尝试AutoClose或AutoPair。
你有一堆 yank 寄存器。也许最简单的解决方案是将其拉到指定的寄存器中,然后在每次需要时从该寄存器中放入。
对于那种带有“自动原型”的“自上而下”编码,片段插件非常棒。
使用片段插件,您可以进行更广泛的“自上而下”编码,而不仅仅是扩展括号。
Ultisnips是一个很棒的片段插件。如果你的 vim 中没有 python 支持,那么Ultisnips的前身 SnipMate 也很强大,但没有那么先进。
使用 Ultisnips,您可以使用以下三个片段中的任何一个:
1)创建括号并将光标放在它们后面
snippet {
{
}
$1
endsnippet
2)创建括号并将光标放在其中
snippet {
{
$1
}
endsnippet
3)创建括号并将光标放在其中,然后Ctrl-j将光标放在括号后面
snippet {
{
$1
}
$2
endsnippet
但是除了像这三个这样的简单片段之外,您还可以变得更加复杂,在片段中定义整个函数/类/等模板,这些模板可以快速扩展和跳转。