syntax on set number "显示行号 "set rnu "相对行号 set ts=4 set expandtab "tab to space set autoindent "自动缩进 set encoding=utf-8 "使用utf-8字符编码 set fileencoding=utf-8 "set cindent set nocompatible "? "set guifont=consolas:h14 set wrap "自动折行 set cursorline "光标行高亮 set hlsearch "高亮显示搜索结果 set incsearch "搜索模式下,每输入一个字符,就跳到对应结果 set ignorecase "忽略搜索大小写 set tags=./tags;,tags "表示从当前文件所在的目录开始查找 tags 文件,如果没有,则向上递归查找 "缓冲区操作 nnoremap b :buffers:b nnoremap e :b# nnoremap n :bnext "页面分割操作 nnoremap s :split nnoremap v :vsp nnoremap d w "保存 nnoremap w :w nnoremap q :q nnoremap fq :q! nnoremap pq :%s/\t/ /g:wq "多标签页 nnoremap tt :tabedit nnoremap tm :vert term "操作优化 nnoremap gm $ nnoremap r :reg inoremap jf cnoremap jf vnoremap gm $ inoremap ! ! inoremap ( ( inoremap ) ) inoremap 【 [ inoremap 】 ] inoremap ; ; inoremap : : inoremap ‘ ' inoremap “ " inoremap , , inoremap 。 . inoremap ? ? inoremap 《 < inoremap 》 > inoremap · ` "自动补全 inoremap jl inoremap jnf inoremap jk " 启用字典补全(Ctrl-X Ctrl-K) set complete+=k " 加载字典补全功能 " 根据文件类型设置不同的字典文件 autocmd FileType c setlocal dictionary+=~/.vim/dict/cpp.dict autocmd FileType cpp setlocal dictionary+=~/.vim/dict/cpp.dict "autocmd FileType python setlocal dictionary+=~/.vim/dict/python.dict "autocmd FileType javascript setlocal dictionary+=~/.vim/dict/javascript.dict "autocmd FileType html setlocal dictionary+=~/.vim/dict/html.dict "autocmd FileType css setlocal dictionary+=~/.vim/dict/css.dict augroup numbertoggle "智能切换绝对行号和相对行号 autocmd! autocmd BufEnter,FocusGained,InsertLeave,WinEnter * if &nu && mode() != "i" | set rnu | endif autocmd BufLeave,FocusLost,InsertEnter,WinLeave * if &nu | set nornu | endif augroup END " 总是显示状态栏 set laststatus=2 " 设置状态栏内容 set statusline= set statusline+=%F\ " 文件名 set statusline+=%h%m%r%w " 文件状态标志 set statusline+=[%{&ff}/%Y] " 文件类型 set statusline+=%= " 右对齐 set statusline+=%l/%L\ " 行号信息 set statusline+=%c%V\ " 列号 set statusline+=%{&fileencoding?&fileencoding:&encoding} " 添加当前编码 set statusline+=\ %{FileSize()} " 添加文件大小 set statusline+=\ %P\ " 文件进度百分比 function! FileSize() let bytes = getfsize(expand('%:p')) if bytes <= 0 return '' endif if bytes < 1024 return bytes . 'B' elseif bytes < 1024 * 1024 return printf('%.1f', bytes/1024.0) . 'K' else return printf('%.1f', bytes/1024.0/1024.0) . 'M' endif endfunction " 设置状态栏颜色 highlight StatusLine ctermfg=159 ctermbg=24 guifg=#d7ffff guibg=#005f87 highlight StatusLineNC ctermfg=152 ctermbg=238 guifg=#d0d0d0 guibg=#444444