• windows下gvim与gcc的一键环境的搭建


    此处略去在windows中配置gcc的方法。默认你已经能够在命令提示符下直接使用gcc了。

    其实就是写了一个vimscript的.vim文件,然后在 _vimrc 中使用source命令引用进来。

    以下是源代码(OneKeyMake.vim)

    ----------------------------------------------------------------------------

    "这是一个一键执行c或cpp的脚本,用source引入到vimrc即可
    "源文件的路径中有空格也没关系
    "在插入模式或者normal模式时使用F5一键运行(不自动保存)
    "使用Ctrl+F5运行,运行会自动使用:w保存文件
    nmap<C-F5> :w<CR>:call Do_OneKeyMake()<CR>
    imap<C-F5> <Esc>:w<CR>:call Do_OneKeyMake()<CR>
    nmap<F5> :call Do_OneKeyMake()<CR>
    imap<F5> <Esc>:call Do_OneKeyMake()<CR>
    function Do_OneKeyMake()
        let sF=expand('%:p')
        let oF=expand('%:p:h').'a.exe'
        let fE=expand('%:e')
        "echo oF
        "echo filereadable(sF)
        if fE!='cpp' && fE!='c'
            echohl WarningMsg | echo '文件扩展名必须是 cpp 或者 c' | echohl None
            return
        endif

        if filereadable(oF)
            if delete(oF)
                echohl WarningMsg | echo '无法删除之前生成的可执行文件,可能是没有权限' | echohl None
                return
            endif
        endif
        
        let cmd='cls & g++ -static -Wall "'.sF.'" -o "'.oF.'" && "'.oF.'" &pause'
        silent execute 'normal :'
        silent execute '!'.cmd
        
        if !filereadable(oF)
            echohl WarningMsg | echo '没有生成新的可执行文件,可能编译失败,或者没有权限' | echohl None
            return
        endif
        "本来把编译和运行放到不同窗口的,但是那样可能会有多余的操作
        "下面的命令用于产生执行时的窗口,现已注释掉
        "let cmd='cls & "'.oF.'" &pause'
        "silent execute 'normal :'
        "silent execute '!'.cmd
        
    endfunction
    ----------------------------------------------------------------------------

    顺便备份一下我用的样式(mystyle.vim)

    "用于个人的一些个性化设定
    set number
    set tabstop=4
    set autoindent
    colo slate
    set guifont=Consolas 12
    set fileencodings=utf-8,cp936

    "把F3映射成自动调整编码,实际没啥用
    nmap<F3> :call ChangeEncoding()<CR>
    function ChangeEncoding()
        let encodings=['utf-8','cp936']
        let w:myEncoding=exists('w:myEncoding')?(w:myEncoding+1):0
        let w:myEncoding=(w:myEncoding>=len(encodings))?0:(w:myEncoding)
        let &encoding=encodings[w:myEncoding]
    endfunction
    ----------------------------------------------------------------------------

    ps:尝试过gvim打开大文件的速度,发现其表现不如notepad++

  • 相关阅读:
    C#使用Selenium实现QQ空间数据抓取 说说抓取
    C#使用Selenium实现QQ空间数据抓取 登录QQ空间
    [bug系列]Method not found: 'Void Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommandBuilderFactory
    【原创】CA证书申请+IIS配置HTTPS+默认访问https路径
    【原创】MVC项目中使用JQuery的upladify图片上传插件相关问题的解决方案
    Jquery中$.ajax()方法参数详解
    开发IOS应用真的一定要买苹果电脑设备吗?
    vim全选内容命令
    配置jdk环境变量
    mysql联查中使用if和group by会让你的结果不是你想要的
  • 原文地址:https://www.cnblogs.com/vanwoos/p/4648878.html
Copyright © 2020-2023  润新知