【问题标题】:open VIM with default code [duplicate]使用默认代码打开 VIM [重复]
【发布时间】:2015-06-05 15:52:40
【问题描述】:

我不知道在这里问这个问题是否正确。我是一个编程爱好者,最近开始了竞争性编程。我最近面临的问题是,对于每个问题,我几乎每天都要输入整个代码 25 次。

#include <iostream>

//other headers or macros go here

using namespace std;

int main(){
    return 0;
}

我在谷歌上搜索过这个问题,但找不到答案。虽然这不是一个编程问题,但有许多竞争性的编码人员使用 vim 或 VI 作为他们的默认文本编辑器,知道这个问题的答案会受益匪浅。

此外,如果您提出的方法不会大大减慢 vim 的打开速度,那就更好了 谢谢你

【问题讨论】:

    标签: vim


    【解决方案1】:

    您可以创建一个宏/缩写来为您执行此操作,但您也可以将其设为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
    

    【讨论】:

    • 您的答案确实解决了目的,但缺点是更新需要 O(n)。我的意思是说,如果我想插入一个新的标题,那么我应该更改之后所有行的行号,让它看起来不错。谢谢
    【解决方案2】:

    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"
    

    【讨论】:

      【解决方案3】:

      为了更通用的方式解决这个问题,我建议你维护你经常使用的sn-ps,试试vim-snippets插件:

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

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

      你也可以简单的复制一个skeleton.c文件,但不如sn-ps方便

      【讨论】:

        【解决方案4】:

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

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

        如果您将其放入您的.vimrc,则无论何时您处于插入模式并键入字符串CPPMAIN 后跟一个回车符,它将在模板中替换。

        【讨论】:

          【解决方案5】:

          sn-ps 就像类固醇上的内置:abbreviate,通常在其中包含参数插入、镜像和多个停止。 snipMate(灵感来自 TextMate 编辑器)是最早的、非常著名的(并且仍然被广泛使用的)Vim 插件之一;不幸的是,它不再维护了;虽然有a fork。现代替代方案(尽管需要 Python)是 UltiSnips。还有更多,见this list on the Vim Tips Wiki

          要评价三点:一是sn-p引擎本身的特点,二是作者或他人提供的sn-ps的质量和广度;第三,添加新的sn-ps是多么容易。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-11-01
            • 2017-11-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多