本人的 $vim$ 配置, 僅供參考

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 基礎設置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
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
相關文章
相關標籤/搜索