Vim配置:在win10下編譯運行C/C++
Vim配置:在win10下編譯運行C/C++
為什麽用Vim
nvim對windows實在是不是很友好,所以打算棄坑。本來想直接用spacevim的,本來以前安裝好了,無奈手賤,給刪了,現在在配置後發現老是有問題,所以放棄spacevim,在過個半年一年之後再來看看。
所以,開始重新調配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:\Editor\Vim\vim80\autoload
下,創建plug.vim,粘貼代碼,就可以了。
接下來就是vim-plug的用法了。對了,用vim-plug的原因是它支持異步,下載管理更快。
在D:\Editor\Vim
_vimrc中寫入
call plug#begin('D:\Editor\Vim\vimfiles\plug') "狀態欄的例子 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 ‘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文件
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" PlugList "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
call plug#begin('D:\Editor\Vim\vimfiles\plug')
"美化
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 '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 'ervandew/supertab'
"自動彈出
Plug 'vim-scripts/AutoComplPop'
call plug#end()
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" plugin settings "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"set my leader
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++'}
"禁用了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:\Code\VimCode
" 設置 gvim 顯示字體
set guifont=DejaVu\ Sans\ Mono\ for\ Powerline:h11
" 取消菜單欄和導航欄
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 relativenumber
" 高亮顯示當前行/列
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
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" keyboard-binding "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 設置快捷鍵將選中文本塊復制至系統剪貼板
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>
Vim配置:在win10下編譯運行C/C++