根路径的 _vimrc 文件
打开, 粘贴如下
这个就要麻烦很多了
GitHub地址
中文文档
三步,
1.> Git 是必不可少的, 如果有问题 自行谷歌 …
2.> 用来传输数据的curl, 官网 https://curl.haxx.se/ 和 Github
3.> vundle vim的插件管理器
强烈建议先看一遍文档!
上面两个是 Linux上的安装介绍, 下面的是 Win的介绍, 都差不多, 仅仅插在 curl 和 文件夹名 上罢了
因为是 WIn平台的, 我们直接使用绝对路径
git clone https://github.com/VundleVim/Vundle.vim.git F:\IDE\GVim\vimfiles\bundle\Vundle.vim
注意了, 既然使用了绝对路径, 克隆下来以后, 那么官网文档的例子也需要修改路径( 在 vim文件夹编辑机_vimrc )
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 编码设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
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
"解决consle输出乱码
language messages zh_CN.utf-8
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 快捷键定义
let mapleader = "," "定义键
source $VIMRUNTIME/vimrc_example.vim
nmap s :source F:/IDE/GVim/Vim/_vimrc
" nmap e :e $VIM/_vimrc
inoremap ( ()
inoremap [ []
inoremap { {}
inoremap " ""
inoremap ' ''
inoremap < <>
function! RemovePairs()
let s:line = getline(".")
let s:previous_char = s:line[col(".")-1]
if index(["(","[","{"],s:previous_char) != -1
let l:original_pos = getpos(".")
execute "normal %"
let l:new_pos = getpos(".")
" only right (
if l:original_pos == l:new_pos
execute "normal! a\"
return
end
let l:line2 = getline(".")
if len(l:line2) == col(".")
execute "normal! v%xa"
else
execute "normal! v%xi"
end
else
execute "normal! a\"
end
endfunction
function! RemoveNextDoubleChar(char)
let l:line = getline(".")
let l:next_char = l:line[col(".")]
if a:char == l:next_char
execute "normal! l"
else
execute "normal! i" . a:char . ""
end
endfunction
inoremap :call RemovePairs()a
inoremap ) :call RemoveNextDoubleChar(')')a
inoremap ] :call RemoveNextDoubleChar(']')a
inoremap } :call RemoveNextDoubleChar('}')a
inoremap > :call RemoveNextDoubleChar('>')a
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 隐藏GVIM菜单及设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
autocmd BufWritePost $MYVIMRC source $MYVIMRC "让vimrc配置变更立即生效'
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set mouse= " 禁用鼠标
"winpos 700 400 "设置初始界面位置
winpos 1000 271
set lines=50 columns=100 " 窗口大小
set splitbelow " 分割出来的窗口位于当前窗口下边/右边
set splitright
set guioptions-=T "不显示工具/菜单栏
set guioptions-=m
set guioptions-=L
set guioptions-=r
set guioptions-=b
set guioptions-=e " 使用内置 tab 样式而不是 gui
set nolist
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 通用设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
autocmd BufWritePost $MYVIMRC source $MYVIMRC " 让vimrc配置变更立即生效
set nocompatible "设置不兼容原始vi模式
set noerrorbells "关闭错误信息响铃"
set noeb "关闭错误提示声音
set vb "用屏幕闪烁代替错误声音
set showcmd "输入的命令显示出来,看的清楚"
filetype on "设置开启文件类型侦测
filetype plugin on "加载对应文件类型插件
" set spell "开启拼写检查
syntax enable "开启语法高亮功能
syntax on "自动语法高亮
set t_Co=256 "开启256色支持
set cmdheight=2 "设置命令行高度
set showcmd "select模式下显示选中的行数
set ruler "总是显示光标的位置
set laststatus=2 "总是显示状态栏
set number "开启行号显示
set cursorline "高亮显示当前行
" set cursorcolumn "高亮显示当前列
set ruler " 显示光标当前位置
set ignorecase " 设置默认进行大小写不敏感查找
set smartcase " 如果有一个大写字母,则切换到大小写敏感查找
set incsearch " 可以在敲键的同时搜索,按下回车把移动光标移动到匹配的词; 按下 Esc 取消搜索。
set wrapscan " 用来设置到文件尾部后是否重新从文件头开始搜索。
autocmd cursorhold * set nohlsearch " 当光标一段时间保持不动了,就禁用高亮
noremap n :set hlsearchn " 当输入查找命令时,再启用高亮
noremap N :set hlsearchN
noremap / :set hlsearch/
noremap ? :set hlsearch?
noremap * *:set hlsearch
set whichwrap+=<,>,h,l "设置光标键跨行
set virtualedit=block,onemore "允许光标出现在最后一个字符的后面
set clipboard+=unnamed " Vim 的默认寄存器和系统剪贴板共享
set winaltkeys=no " 设置 alt 键不映射到菜单栏
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 代码缩进与排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set autoindent "设置自动缩进
set cindent "设置使用C/C++语言的自动缩进方式
set cinoptions=g0,:0,N-s,(0 "设置使用C/C++语言的具体缩进方式
set smartindent "智能选择对齐方式
filetype indent on "自适应不同语言的智能缩进
set expandtab "将制表符扩展为空格
set tabstop=4 "设置编辑时制表符所占的空格数
set shiftwidth=4 "设置格式化时制表符占用的空格数
set softtabstop=4 "设置4个空格为制表符
set smarttab "在行和段开始处使用制表符
"set nowrap "禁止折行
set backspace=2 "使用回车键正常处理indent.eol,start等
set showmatch " 显示括号匹配
set paste " 在Vim中通过鼠标右键粘贴时会在行首多出许多缩进和空格,可以在插入模式下粘贴内容时不会有任何格式变形、胡乱缩进等问题。
set listchars=tab:>-,trail:- " 显示空格和tab键
if has("autocmd") " 从上次编辑位置打开
au BufReadPost * if line("`\"") > 1 && line("`\"") <= line("$") | exe "normal! g`\"" | endif
" for simplicity, " au BufReadPost * exe "normal! g`\"", is Okay.
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 代码补全
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set smartindent " 为C程序提供自动缩进
set completeopt=preview,menu "代码补全
filetype plugin indent on
set completeopt=longest,menu "打开文件类型检测, 加了这句才可以用智能补全
set completeopt-=preview " 补全内容不以分割子窗口形式出现,只显示补全列表
set wildmenu "vim自身命令行模式智能补全
set completeopt-=preview "补全时不显示窗口,只显示补全列表
" 以下文件类型,敲 {<回车> 后,自动加入反括号 }
au FileType c,cpp,h,java,css,js,nginx,scala,go inoremap { {}O
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"代码折叠
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set foldmethod=syntax "设置基于语法进行代码折叠
set nofoldenable "关闭代码折叠
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 缓存设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set undodir=F:/IDE/GVim/Vim/_undodir " 缓存文件目录
set directory=F:/IDE/GVim/Vim/_swapdir " 临时文件目录
"set noundofile " 禁止生成缓存文件
"set nobackup
"set noswapfile
set autoread "文件在vim之外修改过,自动重新载入
set autowrite "设置自动保存
set confirm "在处理未保存或只读文件时,弹出确认
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" ----------------python配置---------------------------------------------------
let g:ycm_path_to_python_interpreter='F:\IDE\Anaconda3\python.exe'
" set pythonthreedll=python37.dll
set pythondll=F:/IDE/Anaconda3/python37.dll
set pythonhome=F:/IDE/Anaconda3
set pythonthreedll=F:/IDE/Anaconda3/python37.dll
set pythonthreehome=F:/IDE/Anaconda3
"--------------------------------------------------------------------------------
" -----------------颜色配置-------------------------------------------------------
set guifont=Microsoft\ YaHei\ Mono:h12 " 设置字体, 字体中带有空格 \ 代表转义
colorscheme MyMonokai " 由于未知原因导致注释颜色在配色文件和此处都无法修改, 所以放在此文件最后一行修改GVim注释颜色为灰色
" colorscheme wombat
" colorscheme molokai
" colorscheme solarized
" colorscheme default
" hi Normal guibg=#9999CC guifg=Black
" 第一行的hi Normal中guibg是设置编辑区的显示背景色,guifg是设置前景色,即文字色。(注:guifg、guibg是用在gvim下,而控制台 cmd命令窗口下运行的vim则是用ctermbg、ctermfg,其它也是这样)
" hi LineNr guibg=#003366 guifg=#99ccff ctermbg=7777 ctermfg=yellow " lineNr是设置行号区的色彩(同样bg是指背景色,fg是指前景色)
" set cursorline
" hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white guifg=black guibg=#66cc99 " 是设置当前行的色彩,即光标所在行。
"--------------------------------------------------------------------------------
" -----------------插件管理vundle#begin和vundle#end之间---------------------
set nocompatible " 去除VI一致性,必须
filetype off " 必须
set rtp+=F:/IDE/GVim/vimfiles/bundle/Vundle.vim " 设置包括vundle和初始化相关的runtime path
call vundle#begin('F:/IDE/GVim/vimfiles/bundle/') " 另一种选择, 指定一个vundle安装插件的路径
Plugin 'VundleVim/Vundle.vim' " 让vundle管理插件版本,必须
set encoding=utf-8
Plugin 'flazz/vim-colorschemes' " 下载一堆主题
Plugin 'luochen1990/rainbow' "彩虹括号
let g:rainbow_active = 1 "0 if you want to enable it later via :RainbowToggle
Plugin 'Lokaltog/vim-powerline' "status 美化
Plugin 'octol/vim-cpp-enhanced-highlight' "对c++语法高亮增强
Plugin 'kshenoy/vim-signature' "书签可视化的插件
Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines' "书签行高亮
Plugin 'majutsushi/tagbar' "taglist的增强版,查看标签,依赖于ctags
Plugin 'scrooloose/nerdcommenter' "多行注释,leader键+cc生成, leader+cu删除注释
Plugin 'scrooloose/nerdtree' "文件浏览
Plugin 'Valloric/YouCompleteMe' "自动补全
" Plugin 'ycm-core/YouCompleteMe'
Plugin 'kien/ctrlp.vim' "搜索历史打开文件,在命令行模式下按ctrl+p触发
Plugin 'vim-scripts/grep.vim' "在命令行模式使用grep命令,:Grep
Plugin 'Lokaltog/vim-easymotion' "快速跳转,按两下leader键和f组合
Plugin 'vim-scripts/ShowTrailingWhitespace.git' "高亮显示行尾的多余空白字符
Plugin 'vim-scripts/indentpython.vim.git'
Plugin 'vim-scripts/Solarized.git' "主题方案
Plugin 'nathanaelkane/vim-indent-guides.git' "缩进对齐显示
Plugin 'vim-scripts/indexer.tar.gz' "自动生成标签
"Plugin 'vim-scripts/DfrankUtil' "indexer 依赖
"Plugin 'vim-scripts/vimprj' "indexer 依赖
Plugin 'davidhalter/jedi-vim' "python 补全,不依赖于tags,但比较慢,可以使用indexer替换,但不能跳转项目外
Plugin 'vim-scripts/Markdown'
Plugin 'tpope/vim-surround'
Plugin 'ekalinin/Dockerfile.vim'
call vundle#end() " 必须
filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
filetype plugin on " 忽视插件改变缩进
" ----------------------------------------------------------------------------
:set background=dark
" ----------------插件的属性配置--------------------------------------------
" Powerline 设置
" 设置状态栏主题风格
let g:Powerline_colorscheme='solarized256'
" 设置tagbar
" 设置 tagbar 子窗口的位置出现在主编辑区的左边
let tagbar_left=1
let g:cpp_class_scope_highlight = 1
let g:cpp_member_variable_highlight = 1
let g:cpp_class_decl_highlight = 1
let g:cpp_posix_standard = 1
let g:cpp_experimental_simple_template_highlight = 1
let g:cpp_experimental_template_highlight = 1
let g:cpp_concepts_highlight = 1
let g:cpp_no_function_highlight = 1
"cpp-enhanced-highlight
"高亮类,成员函数,标准库和模板
let g:cpp_class_scope_highlight = 1
let g:cpp_member_variable_highlight = 1
let g:cpp_concepts_highlight = 1
let g:cpp_experimental_simple_template_highlight = 1
"文件较大时使用下面的设置高亮模板速度较快,但会有一些小错误
"let g:cpp_experimental_template_highlight = 1
" " 设置显示/隐藏标签列表子窗口的快捷键。速记:identifier list by tag
nnoremap t :TagbarToggle
" " 设置标签子窗口的宽度
let tagbar_width=32
" " tagbar 子窗口中不显示冗余帮助信息
let g:tagbar_compact=1
" " 设置 ctags 对哪些代码标识符生成标签
" signature设置
let g:SignatureMap = {
\ 'Leader' : "m",
\ 'PlaceNextMark' : "m,",
\ 'ToggleMarkAtLine' : "m.",
\ 'PurgeMarksAtLine' : "m-",
\ 'DeleteMark' : "dm",
\ 'PurgeMarks' : "mda",
\ 'PurgeMarkers' : "m",
\ 'GotoNextLineAlpha' : "']",
\ 'GotoPrevLineAlpha' : "'[",
\ 'GotoNextSpotAlpha' : "`]",
\ 'GotoPrevSpotAlpha' : "`[",
\ 'GotoNextLineByPos' : "]'",
\ 'GotoPrevLineByPos' : "['",
\ 'GotoNextSpotByPos' : "mn",
\ 'GotoPrevSpotByPos' : "mp",
\ 'GotoNextMarker' : "[+",
\ 'GotoPrevMarker' : "[-",
\ 'GotoNextMarkerAny' : "]=",
\ 'GotoPrevMarkerAny' : "[=",
\ 'ListLocalMarks' : "ms",
\ 'ListLocalMarkers' : "m?"
\ }
" 使用 NERDTree 插件查看工程文件。设置快捷键,速记:file list
nmap f :NERDTreeToggle
" 设置NERDTree子窗口宽度
let NERDTreeWinSize=32
" 设置NERDTree子窗口位置
let NERDTreeWinPos="left"
" 显示隐藏文件
let NERDTreeShowHidden=1
" NERDTree 子窗口中不显示冗余帮助信息
let NERDTreeMinimalUI=1
" 删除文件时自动删除文件对应 buffer
let NERDTreeAutoDeleteBuffer=1
" YCM 补全菜单配色
" 菜单
highlight Pmenu ctermfg=2 ctermbg=3 guifg=#005f87 guibg=#EEE8D5
" 选中项
highlight PmenuSel ctermfg=2 ctermbg=3 guifg=#AFD700 guibg=#106900
" 补全功能在注释中同样有效
let g:ycm_complete_in_comments=1
" " 允许 vim 加载 .ycm_extra_conf.py 文件,不再提示
" let g:ycm_confirm_extra_conf=0
" 开启 YCM 标签补全引擎
" let g:ycm_collect_identifiers_from_tags_files=1
" 引入 C++ 标准库tags
" set tags+=/data/misc/software/misc./vim/stdcpp.tags
" YCM 集成 OmniCppComplete 补全引擎,设置其快捷键
"inoremap ;
" 从第一个键入字符就开始罗列匹配项
" let g:ycm_min_num_of_chars_for_completion=1
" 禁止缓存匹配项,每次都重新生成匹配项
let g:ycm_cache_omnifunc=0
" 语法关键字补全
" let g:ycm_seed_identifiers_with_syntax=1
" let g:ycm_global_ycm_extra_conf = 'F:/IDE/GVim/vimfiles/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
""" color settings
set t_Co=256
if has("gui_running")
set guioptions=gR
set mousemodel=popup
set background=light
""hi LineNr cterm=bold guibg=black guifg=white
""hi CursorLine cterm=none ctermbg=lightgray ctermfg=none
""hi CursorColumn cterm=none ctermbg=lightgray ctermfg=none
else
set background=dark
""hi LineNr cterm=bold ctermbg=black ctermfg=white
""hi CursorLine cterm=none ctermbg=darkgray ctermfg=none
""hi CursorColumn cterm=none ctermbg=darkgray ctermfg=none
endif
" indent guides
"let g:indent_guides_enable_on_vim_startup=1
" 从第二层开始可视化显示缩进
let g:indent_guides_start_level=2
"let g:indent_guides_auto_colors = 0
"hi IndentGuidesOdd guibg=red ctermbg=3
"hi IndentGuidesEven guibg=green ctermbg=4
" 色块宽度
let g:indent_guides_guide_size=1
" 快捷键 i 开/关缩进可视化
noremap sj :IndentGuidesToggle
" ---------------------------------------------------------------------------------
" --------------------以下范例用来支持不同格式的插件安装.----------------------
" 请将安装插件的命令放在vundle#begin和vundle#end之间.
" Github上的插件
" 格式为 Plugin '用户名/插件仓库名'
" Plugin 'tpope/vim-fugitive'
" 来自 http://vim-scripts.org/vim/scripts.html 的插件
" Plugin '插件名称' 实际上是 Plugin 'vim-scripts/插件仓库名' 只是此处的用户名可以省略
" Plugin 'L9'
" 由Git支持但不再github上的插件仓库 Plugin 'git clone 后面的地址'
" Plugin 'git://git.wincent.com/command-t.git'
" 本地的Git仓库(例如自己的插件) Plugin 'file:///+本地插件仓库绝对路径'
" Plugin 'file:///home/gmarik/path/to/plugin'
" 插件在仓库的子目录中.
" 正确指定路径用以设置runtimepath. 以下范例插件在sparkup/vim目录下
" Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" 安装L9,如果已经安装过这个插件,可利用以下格式避免命名冲突
" Plugin 'ascenator/L9', {'name': 'newL9'}
"----------------------------------------------------------------------------------
" ---------------------简要帮助文档----------------------------------------------
" :PluginList - 列出所有已配置的插件
" :PluginInstall - 安装插件,追加 `!` 用以更新或使用 :PluginUpdate
" :PluginSearch foo - 搜索 foo ; 追加 `!` 清除本地缓存
" :PluginClean - 清除未使用插件,需要确认; 追加 `!` 自动批准移除未使用插件
" :BundleList -列举出列表中(.vimrc中)配置的所有插件
" :BundleInstall -安装列表中全部插件
" :BundleInstall! -更新列表中全部插件
" :BundleSearch foo -查找foo插件
" :BundleSearch! foo -刷新foo插件缓存
" :BundleClean -清除列表中没有的插件
" :BundleClean! -清除列表中没有的插件
"
" 查阅 :h vundle 获取更多细节和wiki以及FAQ
" 将你自己对非插件片段放在这行之后
hi Comment guifg=#807d71