打开特定扩展名的新文件时的默认文本(例如:.cpp)

时间:2016-09-14 13:03:26

标签: templates vim atom-editor

我想要一些默认文字,如:

#include <iostream>
using namespace std;
int main()
{
   // code
   return 0;
}
每当我在Vim或Atom中打开.cpp文件时都会来。我在各种论坛上搜索了很多但除了Visual Studio之外找不到答案,但是没有找到Vim或Atom的答案。

2 个答案:

答案 0 :(得分:1)

这是什么片段。使用代码段插件,例如UltiSnips。您还需要一组代码段,例如vim-snippets

答案 1 :(得分:0)

Vim有多个事件,我们可以在其中发现是创建了新文件还是打开了文件:

if has("autocmd")   
    au BufNewFile,BufRead *.cpp "Do something
endif

我们要检查我们打开的文件是否为空检查文件是否有文件系统位置,让我们把它放在一个函数中,以便更容易阅读:

function! EmptyFile()
    if (line('$') == 1 && getline(1) == '')
        "Do something
    endif
endfunction

我们要做的最后一件事是根据现有文件插入一些模板:

function! LoadTemplate(template)
    let fl = readfile(template)
    call append('', fl)
endfunction

现在一切都在一起(你应该把它添加到你的.vimrc):

function! AddEmptyTemplate(template)
    if (line('$') == 1 && getline(1) == '')
        let fl = readfile(a:template)
        call append('', fl)
    endif
endfunction

if has("autocmd")   
    au BufNewFile,BufRead *.cpp call AddEmptyTemplate("cpp-template.cpp")
    au BufNewFile,BufRead *.c call AddEmptyTemplate("c-template.c")
endif

这假设你有Vim可以找到的文件夹中的文件。