使用默认代码打开VIM

时间:2015-06-05 04:41:17

标签: vim

我不知道在这里提出这个问题是否正确。我是编程热心,最近开始竞争性编程。我最近遇到的问题是我每天要输入几乎25次的整个代码。

#include <iostream>

//other headers or macros go here

using namespace std;

int main(){
    return 0;
}

我在谷歌搜索过这个问题,但无法找到答案。虽然它不是一个编程问题,但是有很多有竞争力的编码人员使用vim或VI作为他们的默认文本编辑器,并且会因为知道这个问题的答案而受益。

如果你建议的方法不会因为很大的因素而减缓vim的开放,那就更好了 谢谢

5 个答案:

答案 0 :(得分:2)

您可以创建一个宏/ abbr来为您执行此操作,但您也可以将其设置为autocmd以写入特定类型的文件。可能有更好的方法来执行此操作,但这只是您必须包含在.vimrc

中的内容
autocmd FileType c call IoStream()
fu! IoStream()
    if line("$") == 1
        call append(0, "#include <iostream>")
        call append(1, "")
        call append(2, "//other headers or macros go here")
        call append(3, "")
        call append(4, "using namespace std;")
        call append(5, "")
        call append(6, "int main(){")
        call append(7, "    return 0;")
        call append(8, "}")
    endif
endfu

答案 1 :(得分:1)

1-您可以使用vim-templates plugin。安装后,您必须使用:Template *.c加载c语言的模板。

2-第二种方法是使用au命令:(您可以在.vimrc文件下面添加命令)

au BufNewFile *.c 0r ~/.vim/contest.c | let IndentStyle = "c"
au BufNewFile *.cpp 0r ~/.vim/contest.cpp | let IndentStyle = "cpp"

答案 2 :(得分:0)

要以更通用的方式解决此问题,我建议您保留经常使用的代码段,尝试使用vim-snippets插件:

https://github.com/honza/vim-snippets

https://github.com/garbas/vim-snipmate

您也可以简单地复制skeleton.c文件,但这不像代码片段那样方便

答案 3 :(得分:0)

如果您只想快速输入一些模板化代码,则无需安装任何额外的插件。只需在.vimrc中使用插入模式缩写。

:iab CPPMAIN 
\#include <iostream><CR>
\<CR>
\using namespace std;<CR>
\<CR>
\<CR>int main(){
\<CR>
\<CR>}

如果你把它放到你的.vimrc中,每当你处于插入模式并键入字符串CPPMAIN后跟回车符时,它将替换为模板。

答案 4 :(得分:0)

片段就像类固醇上的内置:abbreviate一样,通常带有参数插入,镜像和内部多个停止。第一个非常着名(并且仍然广泛使用)的Vim插件之一是snipMate(受 TextMate 编辑器的启发);不幸的是,它不再维持;虽然有a fork。现代替代方案(虽然需要Python)是UltiSnips。还有更多内容,请参阅this list on the Vim Tips Wiki

有三件事要评估:第一,摘录引擎本身的功能,第二,作者或其他人提供的片段的质量和广度;第三,添加新片段是多么容易。