""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 基礎設置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set nocompatible " 設置不兼容原始vi模式 filetype on " 設置開啓文件類型偵測 filetype plugin on " 設置加載對應文件類型的插件 set noeb " 關閉錯誤的提示 syntax enable " 開啓語法高亮功能 syntax on " 自動語法高亮 set t_Co=256 " 開啓256色支持 let g:rehash256 = 1 color molokai packadd termdebug " 開啓Termbug調試 set cmdheight=2 " 設置命令行的高度 set showcmd " select模式下顯示選中的行數 set ruler " 老是顯示光標位置 set laststatus=2 " 老是顯示狀態欄 set number " 開啓行號顯示 set cursorline " 高亮顯示當前行 highlight CursorLine cterm=NONE ctermbg=black guibg=NONE guifg=NONE " 高亮顯示當前行具體設置 set cursorcolumn highlight Cursorcolumn cterm=NONE ctermbg=black guibg=NONE guifg=NONE set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ [%{(&fenc==\"\"?&enc:&fenc).(&bomb?\",BOM\":\"\")}]\ %c:%l/%L%) " 設置狀態行顯示的信息 set whichwrap+=<,>,h,l " 設置光標鍵跨行 set ttimeoutlen=0 " 設置<ESC>鍵響應時間 set mouse=a " 開啓鼠標支持 set backspace=indent,eol,start " 容許刪除換行符 set hidden " 文件未保存時切換緩衝區由vim保存 set display=lastline " 避免折行後某一行不見 set fillchars=vert:\ ,stl:\ ,stlnc:\ " 在分割窗口間留出空白 set autochdir " 移至當前文件所在目錄 set wildmenu " 開啓zsh支持 set wildmode=full " zsh補全菜單 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 快捷鍵設置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" let mapleader = "`" " 定義<leader>鍵 inoremap { {<CR>}<ESC>kA map <leader>1 :call Compile()<CR> func! Compile() exec 'w' exec '!g++ % -o %< -g -Wall -lm' endfunc map <leader>2 :!time ./%<<CR> map <leader>3 :call Divide()<CR><c-w>l func! Divide() exec 'vsp %<.out' exec 'w' exec 'vertical resize -40' exec 'sp %<.in' exec 'w' endfunc map <leader>4 <c-w>h:wq<CR>:wq<CR> map zz zf% map zx zd map <c-n> :call SetTitle()<CR> map <F3> :NERDTreeToggle<CR> " F3開啓目錄樹nerdtree插件 map <F5> :Termdebug %<<CR> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 代碼縮進和排版 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set cindent " 設置使用C/C++語言的自動縮進方式 set cinoptions+=(0,:0,g0 " N-s設置C/C++語言的具體縮進方式 set smartindent " 智能的選擇對其方式 filetype indent on " 自適應不一樣語言的智能縮進 set tabstop=4 " 設置編輯時製表符佔用空格數 set shiftwidth=4 " 設置格式化時製表符佔用空格數 set softtabstop=4 " 設置4個空格爲製表符 set smarttab " 在行和段開始處使用製表符 set backspace=2 " 使用回車鍵正常處理indent,eol,start等 set sidescroll=10 " 設置向右滾動字符數 set fdm=marker set history=2000 " 歷史ex命令記錄上限提升 set scrolloff=6 " 上下可視行數 set showmatch " 高亮顯示匹配括號 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 搜索設置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set hlsearch " 高亮顯示搜索結果 set incsearch " 開啓實時搜索功能 set ignorecase " 搜索時大小寫不敏感 set nowrapscan " 搜索到文件兩端中止 set incsearch " 實時搜索 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 緩存設置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set nobackup " 設置不備份 set noswapfile " 禁止生成臨時文件 set autoread " 文件在vim以外修改過,自動從新讀入 set autowrite " 設置自動保存 set confirm " 在處理未保存或只讀文件的時候,彈出確認 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 編碼設置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set langmenu=zh_CN.UTF-8 set helplang=cn set termencoding=utf-8 set encoding=utf8 set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 插件列表 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' " 使用Vundle的必須配置 Plugin 'chxuan/vimplus-startify' " 啓動界面 Plugin 'scrooloose/nerdtree' " 目錄樹 Plugin 'tiagofumo/vim-nerdtree-syntax-highlight' " 目錄樹美化 Plugin 'vim-airline/vim-airline' " 狀態欄美化 Plugin 'vim-airline/vim-airline-themes' " 狀態欄美化主題 Plugin 'tpope/vim-commentary' " 快速註釋 Plugin 'w0rp/ale' " 語法查錯 Plugin 'Lokaltog/vim-easymotion' " 快速跳轉 Plugin 'luochen1990/rainbow' " 彩虹括號 Plugin 'yianwillis/vimcdoc' " HELP文檔中文 Plugin 'godlygeek/tabular' Plugin 'plasticboy/vim-markdown' Plugin 'suan/vim-instant-markdown' call vundle#end() """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 插件設置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " airline 設置 if filereadable(expand($HOME . '/.vimrc.airline')) source $HOME/.vimrc.airline endif " rainbow let g:rainbow_active = 1 " Nerdtree設置 if filereadable(expand($HOME . '/.vimrc.nerdtree')) source $HOME/.vimrc.nerdtree endif """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 新文件標題 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" autocmd BufNewFile *.cpp exec ":call SetTitle()" func! SetTitle() exec "0r ~/模板/template.cpp" normal ggO call append(0,"/**********************************************************") call append(1," * Author : EndSaH") call append(2," * Email : 2499808100@qq.com") call append(3," * Created Time : ".strftime("%Y-%m-%d %H:%M")) call append(4," * FileName : ".expand("%:t")) call append(5," * *******************************************************/") call append(6,"".expand("%:r")) normal kdw74G8lp75G8lp7GddGdd12Gzz endfunc