set runtimepath^=~/.vim/pack/vendor/start/ctrlp.vim 
let g:ctrlp_map ='<c-p>'
let g:ctrlp_cmd = 'CtrlP'
let g:ctrlp_working_path_mode = 'ra'
" 设置默认路径为当前路径
call plug#begin()
Plug 'preservim/NERDTree' 
" 需要安装的插件 NERDTree
Plug 'wikitopian/hardmode'  
" 安装 hardmode
" ..... # 更多插件
call plug#end()
set mouse=a	           
" 启用鼠标
set number             
" 显示行号
set tabstop=4          
" 按下 Tab 键时,Vim 显示的4空格
set shiftwidth=4       
" 在文本上按下>>(增加一级缩进)、<<(取消一级缩进)或者==(取消全部缩进)时,每一级的字符数。
set noexpandtab          
" 不将 Tab 转为空格 
set smarttab
" 在行和段开始处使用制表符
set autoindent         
" 按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致
set smartindent        
"  在这种缩进模式中,每一行都和前一行有相同的缩进量,同时这种缩进形式能正确的识别出花括号,当遇到右花括号(}),则取消缩进形式。
set cursorline         
" 光标所在的当前行高亮
set wrap               
" 自动折行,即太长的行分成几行显示
set ruler              
" 在状态栏显示光标的当前位置(位于哪一行哪一列)
set hlsearch           
" 搜索时,高亮显示匹配结果。
set incsearch
" 搜索时无须全部打完再Enter
set ignorecase         
" 搜索时忽略大小写
set undofile           
" 保留撤销历史
set noerrorbells visualbell t_vb=
" 出错时不发出声音
set history=1000       
" Vim 需要记住多少次历史操作
set encoding=utf-8     
" 使用utf-8编码
set laststatus=2
" 始终显示状态行
set backspace=indent,eol,start
" 使回格键(backspace)正常处理indent, eol, start等
set clipboard+=unnamed
" 与windows共享剪贴版
set whichwrap+=<,>,b,s,[,]
" 允许backspace和光标键跨越行边界
set showmatch
" 高亮显示匹配的括号
set matchtime=5
" 匹配括号高亮的时间(单位是十分之一秒)


syntax on              
" 打开语法高亮
set cc=120
set t_Co=256           
" 启用256色
" color ron
set autoread           
" 打开文件监视。如果在编辑过程中文件发生外部改变(比如被别的编辑器编辑了),就会发出提示
set nobackup           
" 不创建备份文件。默认情况下,文件保存时,会额外创建一个备份文件,它的文件名是在原文件名的末尾,再添加一个波浪号(〜)
set noswapfile        
" 不创建交换文件。交换文件主要用于系统崩溃时恢复文件,文件名的开头是.、结尾是.swp

map <F9> <ESC>:w<ESC>:!g++ % -std=c++14 -o %< && time ./%< <CR>
map <F8> <ESC>:w<ESC>:!open % <CR>
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i<CR><ESC>O
inoremap ' ''<ESC>i
inoremap " ""<ESC>i
func SkipPair()  
    if getline('.')[col('.') - 1] == ')' || getline('.')[col('.') - 1] == ']' || getline('.')[col('.') - 1] == '"' || getline('.')[col('.') - 1] == "'" || getline('.')[col('.') - 1] == '}'  
        return "\<ESC>la"  
    else  
        return "\t"  
    endif  
endfunc  
"设置跳出自动补全的括号
inoremap <TAB> <c-r>=SkipPair()<CR>
" 将tab键绑定为跳出括号  

nnoremap <Left>  :echoe "Use h"<CR>
nnoremap <Right> :echoe "Use l"<CR>
nnoremap <Up>    :echoe "Use k"<CR>
nnoremap <Down>  :echoe "Use j"<CR>
" inoremap <Left>  <ESC>:echoe "Use h"<CR>
" inoremap <Right> <ESC>:echoe "Use l"<CR>
" inoremap <Up>    <ESC>:echoe "Use k"<CR>
" inoremap <Down>  <ESC>:echoe "Use j"<CR>