一. Gvim简介
Gvim的G指的是GUI,也就是图形化界面。相当于在vim包了一层图形化界面,相比之下gvim拥有更丰富的颜色和字体,还有菜单和滚动条,以及更友好的鼠标操作等,除此之外和vim并无太大差异.这里就不再详细说下载和安装过程.
安装好gvim后,用它随便打开一个文件在命令模式下输入:version查看,注意python或python3前边应该是+,说明已经支持python环境,这里只说python3.6的配置.
二. _vimrc配置
set pythonthreedll=python36.dll "设置支持3.6,原gvim可能只支持python3.7
"隐藏菜单栏
set guioptions-=m
set guioptions-=T
map :if &guioptions =~# 'T'
\set guioptions-=T
\set guioptions-=m
\else
\set guioptions+=T
\set guioptions+=m
\endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 编码设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
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
source $VIMRUNTIME/delmenu.vim "导入删除菜单脚本,删除乱码的菜单
source $VIMRUNTIME/menu.vim "导入正常的菜单脚本
language messages zh_CN.utf-8 "设置提示信息语言
syntax on "语法高亮
" 缓存设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nobackup "设置不备份
set noswapfile "禁止生成临时文件
set autoread "文件在vim之外修改过,自动重新载入
set autowrite "设置自动保存
set confirm "在处理未保存或只读文件时,弹出确认
set number "设置行号
set relativenumber "行号
map :source $HOME/_vimrc
" 配色方案
let g:molokai_original=1
let g:rehash256=1
colorscheme evening
set guifont=DejaVu_Sans_Mono:h13:cANSI "设置字体和大小
noremap W :w
noremap Q :q
noremap Y 5h
noremap U 5j
noremap I 5k
noremap O 5l
inoremap
set tabstop=4
set wrap "设置自动换行
set linebreak "整词换行,与自动换行搭配使用
set showtabline=2 "设置显是显示标签栏
set autoread "设置当文件在外部被修改,自动更新该文件
set hlsearch "高亮显示查找结果
set incsearch "增量查找
exec "nohlsearch"
set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%] "显示文件名:总行数,总的字符数
set ruler "在编辑过程中,在右下角显示光标位置的状态行
set smartindent "智能对齐
set showmatch "设置匹配模式,相当于括号匹配
set cursorline"启用光标行
set scrolloff=5 "在光标接近底端或顶端时,自动下滚或上滚
set mouse=a "设置在任何模式下鼠标都可用
set ai! "设置自动缩进
set guicursor+=a:blinkon0 "设置光标不闪烁
set ignorecase "搜索大小写不敏感
set noic
map :%!python -m json.tool "格式化json字符串
"代码折叠
set foldmethod=indent
set foldlevel=99
let g:SimpylFold_docstring_preview=1
"切换分屏
nnoremap
nnoremap
nnoremap
nnoremap
"plugin插件配置
call plug#begin('E:\Gvim\Vim\vim81\plugs')
Plug 'tell-k/vim-autopep8'
Plug 'scrooloose/nerdtree'
Plug 'vim-scripts/indentpython.vim'
Plug 'tmhedberg/SimpylFold'
Plug 'rkulla/pydiction'
Plug 'Yggdroot/indentLine'
call plug#end()
"配置文件树
"设置NerdTree 按F3打开或关闭NERDTree
map :NERDTreeMirror
map :NERDTreeToggle
"打开vim时自动打开NERDTree
autocmd VimEnter * NERDTree
"关闭所有文本窗口时自动退出vim,否则需要两次退出才可
autocmd BufEnter * if 0 == len(filter(range(1, winnr('$')), 'empty(getbufvar(winbufnr(v:val), "&bt"))'))
let NERDTreeIgnore = ['\.pyc$'] " 过滤所有.pyc文件不显示
let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1
"一键运行
map :call CompileRunGcc()
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec '!g++ % -o %
exec '!./%
elseif &filetype == 'cpp'
exec '!g++ % -o %
exec '!./%
elseif &filetype == 'python'
exec '!python %'
elseif &filetype == 'sh'
:!bash %
endif
endfunc
"自动补全
filetype plugin on
let g:pydiction_location = 'E:\Gvim\Vim\vim81\ftplugin\complete-dict'
let g:pydiction_menu_height = 3
"PEP8
autocmd FileType python noremap :call Autopep8()
set nocompatible "与vi不兼容
set backspace=indent,eol,start
"缩进线
let g:indentLine_color_gui = '#A4E57E'
let g:indentLine_color_tty_light = 7
let g:indentLine_color_dark = 1
"ctags配置
map :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . :TlistUpdate
imap :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . :TlistUpdate
set tags=tags;
set autochdir
"配置taglist
noremap pp :TlistToggle
"格式化json
command! Json :execute '%!python -m json.tool'
\ | :execute '%!python -c "import re,sys;chr=__builtins__.__dict__.get(\"unichr\", chr);sys.stdout.write(re.sub(r\"\\u[0-9a-f]{4}\", lambda x: chr(int(\"0x\" + x.group(0)[2:], 16)).encode(\"utf-8\"), sys.stdin.read()))"'
\ | :set ft=javascript
\ | :1
三. 效果图