在gVim中自动生成c代码

在gVim中自动生成c代码,vim,Vim,在gVim中的*.c文件中,当我键入for(时,我希望Vim生成基本for循环结构的其余部分,如下所示 for(;;) { } 我是在以下缩写的帮助下实现这一点的 ab for( for(;;)<CR>{<CR>} ab for(for(;){ 但是,我希望此缩写仅在c文件中有效 我是否可以在\u vimrc中使用一个条件,以便在所有文件中禁用缩写,但在*.c文件中除外?使用vim实现这一点的一个好方法是使用自动命令,例如: autocmd FileType c

在gVim中的*.c文件中,当我键入
for(
时,我希望Vim生成基本for循环结构的其余部分,如下所示

for(;;)
{
}
我是在以下缩写的帮助下实现这一点的

ab for( for(;;)<CR>{<CR>}
ab for(for(;){
但是,我希望此缩写仅在
c
文件中有效


我是否可以在
\u vimrc
中使用一个条件,以便在所有文件中禁用缩写,但在*.c文件中除外?

使用vim实现这一点的一个好方法是使用
自动命令,例如:

autocmd FileType c      abb <buffer> for( for(;;)<CR>{<CR>}
autocmd文件类型c abb for(for(;;){}
自动命令
功能非常强大,而且效果非常好。
在本例中,请小心将
abb
参数一起使用,因为您希望此缩写仅在c源文件缓冲区中处于活动状态。例如,请参阅文档。

此功能通常称为“snippets”


它由各种Vim插件支持,比如我使用过abb,但我没有看到预期的结果。我的意思是,当我在缓冲区中有*.c和*.txt文件时,这个ab也在*.txt文件中启用……我相信它的
缩写
ab
abb
只是
缩写
abb
的缩写形式对于
缩写本地
,它定义了一个仅对当前缓冲区有效的缩写,因此与
autocmd
结合使用非常有趣,请参阅没有名为
:缩写本地
的命令。处理本地缩写的方法是使用
:缩写
谢谢@FDinoff,我确实误解了文档修正了答案。