• Vim配置:在win10下用vim编译运行C/C++(异步插件管理,一键运行)


    为什么用Vim

    重新调配vim,追求尽量简单些。

    安装

    官网下载
    PC: MS-DOS and MS-Windows下的
    For modern MS-Windows systems (starting with XP) you can simply use the executable installer:gvim80.exe
    双击执行,放到合适的目录。

    不过这个貌似是没有编译的,有些插件不能完全用,最好再在github这里下载gvim_8.0.1763_x64.zip解压到原来安装好的目录里去。

    插件管理vim-plug

    vim-plug

    • 直接复制这个链接里的plug.vim的代码,到D:EditorVimvim80autoload下,创建plug.vim,粘贴代码,就可以了。

    接下来就是vim-plug的用法了。对了,用vim-plug的原因是它支持异步,下载管理更快。

    D:EditorVim_vimrc中写入

    call plug#begin('D:EditorVimvimfilesplug')
    
    "状态栏的例子
    Plug 'bling/vim-airline'
    Plug 'vim-airline/vim-airline-themes'
    
    call plug#end()
    
    "关于状态栏的小配置
    "Powerline setting
    let g:airline_theme='molokai'
    let g:airline_powerline_fonts = 1
    

    保存。
    打开gvim.exe,运行:PlugInstall安装好插件后,就能使用了这些插件了。

    更多插件

    必备插件

    "美化
    Plug 'flazz/vim-colorschemes'
    "状态栏
    Plug 'bling/vim-airline'
    Plug 'vim-airline/vim-airline-themes'
    "一只说话的狗
    Plug 'mhinz/vim-startify'
    "主题选择
    Plug 'tomasr/molokai'
    Plug 'morhetz/gruvbox'
        
    "文件树
    Plug 'scrooloose/nerdtree'
    
    "文件搜索
    Plug 'Yggdroot/LeaderF'
    
    
    "异步语法检查
    Plug 'w0rp/ale'
    
    "括号补全
    Plug 'jiangmiao/auto-pairs'
    
    "注释代码工具
    "cc注释当前行 cu 撤销注释当前行 cs sexily注释 cA 行尾注释,切换成输入模式
    Plug 'scrooloose/nerdcommenter'
    
    "编译运行
    "F4 添加作者信息,更新作者信息
    "F9 一键保存、编译、连接存并运行
    "Ctrl + F9 一键保存并编译
    "Ctrl + F10 一键保存并连接
    "F8 编译调试(仅限于单文件)(gdb)
    Plug 'Svtter/ACM.vim'
    
    "自动补全
    Plug 'ervandew/supertab'
    
    "自动弹出提示
    Plug 'vim-scripts/AutoComplPop'
    

    我的_vimrc文件

    github文件地址,避免有更新

    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "                                  PlugList                                  "
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    call plug#begin('D:EditorVimvimfilesplug')
    
    "美化
    Plug 'flazz/vim-colorschemes'
    Plug 'bling/vim-airline'
    Plug 'vim-airline/vim-airline-themes'
    Plug 'mhinz/vim-startify'
    "theme color
    Plug 'tomasr/molokai'
    Plug 'morhetz/gruvbox'
    
    Plug 'scrooloose/nerdtree'
    "文件搜索
    Plug 'Yggdroot/LeaderF'
    "Plug 'scrooloose/syntastic'
    Plug 'w0rp/ale'
    "括号补全
    Plug 'jiangmiao/auto-pairs'
    "注释代码工具
    "cc注释当前行 cu 撤销注释当前行 cs sexily注释 cA 行尾注释,切换成输入模式
    Plug 'scrooloose/nerdcommenter'
    "编译运行
    "F4 添加作者信息,更新作者信息
    "F9 一键保存、编译、连接存并运行
    "Ctrl + F9 一键保存并编译
    "Ctrl + F10 一键保存并连接
    "F8 编译调试(仅限于单文件)(gdb)
    Plug 'Svtter/ACM.vim'
    
    "
    Plug 'tell-k/vim-autopep8'
    
    "自动补全
    Plug 'ervandew/supertab'
    "自动弹出
    Plug 'vim-scripts/AutoComplPop'
    
    
    call plug#end()
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "                              plugin settings                               "
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    
    "set my leader
    let mapleader=","
    "let mapleader=";"
    "let mapleader="<Space>"
    
    set nocompatible
    
    " Initialize plugin system
    filetype plugin indent on
    "加强版状态栏
    let g:airline_theme='molokai'
    "使用powerline打过补丁的字体
    let g:airline_powerline_fonts = 1
    
    "关闭状态显示空白符号计数,这个对我用处不大"
    let g:airline#extensions#whitespace#enabled = 0
    let g:airline#extensions#whitespace#symbol = '!'
    "开启tabline
    let g:airline#extensions#tabline#enabled = 1
    "tabline中buffer显示编号
    let g:airline#extensions#tabline#buffer_nr_show = 1
    
    
    
    " 配色方案
    set background=dark
    "colorscheme solarized
    "colorscheme molokai
    colorscheme gruvbox
    "colorscheme phd
    
    
    " 工程文件浏览
    " 使用 NERDTree 插件查看工程文件。
    nmap <Leader>f :NERDTreeToggle<CR>
    " 设置 NERDTree 子窗口宽度
    let NERDTreeWinSize=22
    " 设置 NERDTree 子窗口位置
    let NERDTreeWinPos="left"
    " 显示隐藏文件
    let NERDTreeShowHidden=1
    " NERDTree 子窗口中不显示冗余帮助信息
    let NERDTreeMinimalUI=1
    " 删除文件时自动删除文件对应 buffer
    let NERDTreeAutoDeleteBuffer=1
    
    "ale
    "始终开启标志列
    "let g:ale_sign_column_always = 1
    let g:ale_set_highlights = 0
    "显示Linter名称,出错或警告等相关信息
    let g:ale_echo_msg_error_str = 'E'
    let g:ale_echo_msg_warning_str = 'W'
    let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
    "普通模式下,sp前往上一个错误或警告,sn前往下一个错误或警告
    nmap sp <Plug>(ale_previous_wrap)
    nmap sn <Plug>(ale_next_wrap)
    "<Leader>s触发/关闭语法检查
    nmap <Leader>s :ALEToggle<CR>
    "<Leader>d查看错误或警告的详细信息
    nmap <Leader>d :ALEDetail<CR>
    "文件内容发生变化时不进行检查
    "let g:ale_lint_on_text_changed = 'never'
    "打开文件时不进行检查
    "let g:ale_lint_on_enter = 0
    "对C/C++使用Clang进行语法检查
    let g:ale_linters = {'c': 'clang'}
    let g:ale_linters = {'c++': 'clang++'}
    let g:ale_linters = {'python': ['flake8'], 'reStructuredText': ['rstcheck']}
    let g:ale_fixers = {'python': ['remove_trailing_lines', 'trim_whitespace', 'autopep8']}
    "禁用了javascript的eslint
    let g:ale_linters = {
       'javascript': ['eslint'],
    }
    
    "LeaderF
    "这里定义了 CTRL+P 在当前项目目录打开文件搜索,CTRL+N 打开 MRU搜索,搜索你最近打开的文件,这两项是我用的最频繁的功能。接着 ALT+P 打开函数搜索,ALT+N 打开 Buffer 搜索
    let g:Lf_ShortcutF = '<c-p>'
    let g:Lf_ShortcutB = '<m-n>'
    noremap <c-n> :LeaderfMru<cr>
    noremap <m-p> :LeaderfFunction<cr>
    noremap <m-n> :LeaderfBuffer<cr>
    noremap <m-m> :LeaderfTag<cr>
    let g:Lf_StlSeparator = { 'left': '', 'right': '', 'font': '' }
    let g:Lf_RootMarkers = ['.project', '.root', '.svn', '.git']
    let g:Lf_WorkingDirectoryMode = 'Ac'
    let g:Lf_WindowHeight = 0.30
    let g:Lf_CacheDirectory = expand('~/.vim/cache')
    let g:Lf_ShowRelativePath = 0
    let g:Lf_HideHelp = 1
    let g:Lf_StlColorscheme = 'powerline'
    let g:Lf_NormalMap = {
         "File":   [["<ESC>", ':exec g:Lf_py "fileExplManager.quit()"<CR>'],
                    ["<F6>", ':exec g:Lf_py "fileExplManager.quit()"<CR>'] ],
         "Buffer": [["<ESC>", ':exec g:Lf_py "bufExplManager.quit()"<CR>'],
                    ["<F6>", ':exec g:Lf_py "bufExplManager.quit()"<CR>'] ],
         "Mru":    [["<ESC>", ':exec g:Lf_py "mruExplManager.quit()"<CR>']],
         "Tag":    [["<ESC>", ':exec g:Lf_py "tagExplManager.quit()"<CR>']],
         "Function":    [["<ESC>", ':exec g:Lf_py "functionExplManager.quit()"<CR>']],
         "Colorscheme":    [["<ESC>", ':exec g:Lf_py "colorschemeExplManager.quit()"<CR>']],
         }
    
    "自动补全
    "补全完成时预览窗口自动消失
    augroup complete
      autocmd!
      autocmd CompleteDone * pclose
    augroup end
    
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "                               common setting                               "
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    cd D:CodeVimCode
    
    
    " 设置 gvim 显示字体
    set guifont=DejaVu Sans Mono for Powerline:h11
    
    set number
    "Show related row numbers
    set relativenumber
    
    " 取消菜单栏和导航栏  
    set guioptions-=m  
    set guioptions-=T  
    " 去除左右两边滚动条
    set go-=r
    set go-=L
    " 设置水平行数和竖直列数  
    set lines=30  
    set columns=90
    
    " 总是显示状态栏
    set laststatus=2
    " 显示光标当前位置
    set ruler
    " 开启行号显示
    set number
    " 高亮显示当前行/列
    set cursorline
    set cursorcolumn
    " 高亮显示搜索结果
    set hlsearch
    "自动换行整词换行
    set wrap
    set linebreak
    "自动设置当前目录为正在编辑的目录
    set autochdir     
    "在光标接近底端或顶端时,自动下滚或上滚
    set scrolloff=10     
    
    set tenc=utf-8
    set encoding=utf-8
    set fileencodings=utf-8,chinese,latin-1
    if has("win32")
        set fileencoding=chinese
    else
        set fileencoding=utf-8
    endif
    "解决菜单乱码
    source $VIMRUNTIME/delmenu.vim
    source $VIMRUNTIME/menu.vim
    "解决consle输出乱码
    language messages zh_CN.utf-8
    
    
    " 开启实时搜索功能
    set incsearch
    " 搜索时大小写不敏感
    set ignorecase
    " 关闭兼容模式
    set nocompatible
    " 没有八进制
    set nrformats=
    " vim 自身命令行模式智能补全
    set wildmenu
    "设置当文件在外部被修改,自动更新该文件
    set autoread         
    "设置不生成备份文件
    set nobackup   
    
    " 缩进
    " 自适应不同语言的智能缩进
    filetype indent on
    " 将制表符扩展为空格
    set expandtab
    " 设置编辑时制表符占用空格数
    set tabstop=4
    " 设置格式化时制表符占用空格数
    set shiftwidth=4
    " 让 vim 把连续数量的空格视为一个制表符
    set softtabstop=4
    "退格键不能用问题
    set backspace=indent,eol,start
    
    syntax on
    syntax enable
    set autoread
    
    "关闭警告音
    set vb t_vb=
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "                               keyboard-binding                             "
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    
    "Vim 与系统剪切板共享
    set clipboard=unnamed
    " 设置快捷键将选中文本块复制至系统剪贴板
    vnoremap <Leader>y "+y
    " 设置快捷键将系统剪贴板内容粘贴至vim
    nmap <Leader>p "+p
    
    " 定义快捷键关闭当前分割窗口
    nmap <Leader>q :q<CR>
    " 定义快捷键保存当前窗口内容
    nmap <Leader>w :w<CR>
    " 定义快捷键保存所有窗口内容并退出 vim
    nmap <Leader>WQ :wa<CR>:q<CR>
    " 不做任何保存,直接退出 vim
    nmap <Leader>Q :qa!<CR>
    
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "                               Ruing                                       "
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "按F5运行python"
    map <F5> :w<cr>:!python %<cr>  
    
    
  • 相关阅读:
    计算与软件工程作业一
    《CLSZS团队》:团队项目选题报告
    计算与软件工程第五次作业
    计算与软件工程第四次作业
    计算与软件工程代码规范
    计算与软件工程第三次作业
    计算与软件工程第二次作业
    壹贰叁肆团队项目选题报告
    计算与软件工程 作业五
    计算与软件工程 作业四
  • 原文地址:https://www.cnblogs.com/wudongwei/p/8946894.html
Copyright © 2020-2023  润新知