我想要一些默認的文本,如:默認文本
#include <iostream>
using namespace std;
int main()
{
// code
return 0;
}
來,每當我打開一個.cpp
文件中的Vim或Atom。我在各種論壇上搜索了很多,但除了Visual Studio之外找不到答案,但是不能找到Vim或Atom的答案。
我想要一些默認的文本,如:默認文本
#include <iostream>
using namespace std;
int main()
{
// code
return 0;
}
來,每當我打開一個.cpp
文件中的Vim或Atom。我在各種論壇上搜索了很多,但除了Visual Studio之外找不到答案,但是不能找到Vim或Atom的答案。
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可以找到。
謝謝,這有很大的幫助。 –
雖然我遇到了一個問題....如果我把CPP模板放在某個文件夾(比如說家),那麼我無法訪問那個模板打開其他文件夾中的.cpp文件,除非我複製粘貼相同該文件夾中的模板 –
用'BufRead,BufNewFile'試一試。每當你切換緩衝區時調用BufEnter,這絕對不是你想要的。 –
這就是片段的用途。使用一個片段插件,如UltiSnips。您還需要一組開頭的片段,例如vim-snippets。
您可能想閱讀[爲什麼我不應該#include?](http://stackoverflow.com/questions/31816095/why-should-i-not-include-bits-stdc -h) –
@波佩爾鬆..謝謝你的鏈接....更新 –