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>
vimrc配置
2022-07-31