GVIM环境配置记录

背景

GVIM只用自带安装的软件,可以完成文本编辑的功能,不过很多开发者编写了很多插件,配合这些插件来做文字代码编辑,能很好地提高速度与效率
GVIM的配置环境,装机后只配置一次,很容易忘记,下次重装系统或者配新机时,又要重新查找相关资料
这里做一次记录,方便后续重新配置相关个人使用的插件
所有记录都是在WINDOWS下进行配置的

vundle安装

安装完成VIM后,进入VIM所在的目录C:\Program Files\Vim

cd C:\Program Files\Vim
git clone https://github.com/VundleVim/Vundle.vim.git vimfiles/bundle/Vundle.vim

等下载完成vundle就算完成了
添加vundle管理的插件

set nocompatible              " 去除VI一致性,必须要添加
filetype off                  " 必须要添加

" 设置包括vundle和初始化相关的runtime path
set rtp+=$VIM/vimfiles/bundle/Vundle.vim
call vundle#rc('$VIM/vimfiles/bundle')
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
"call vundle#begin('~/some/path/here')

" 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim'

" 以下范例用来支持不同格式的插件安装.
" 请将安装插件的命令放在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'}

Plugin 'scrooloose/nerdtree' " 加入NERDTree

Plugin 'tomasr/molokai'

Plugin 'ycm-core/YouCompleteMe'

"Plugin 'wesleyche/SrcExpl'

"Plugin 'tenfyzhong/CompleteParameter.vim'
" 你的所有插件需要在下面这行之前
call vundle#end()            " 必须

VIM的安装路径可以用 $VIM来表示,不需要配置WINDOWS的系统变量,否则会工作不正常,$VIM是在哪里定义的,没有找到出处
添加完插件之后,VIM加载后,需要使用PluginInstall来加载插件

启动时自动加载使用操作

autocmd VimEnter * PluginInstall
autocmd VimEnter * :q
autocmd VimEnter * NERDTree
autocmd VimEnter * :colorscheme morning

期间遇到,不能复制或者工作不正常的状态,原因是WINDOWS权限设置的问题,因为没有管理权限,导致无法对C盘文件进行操作,导致工作不正常。

自带目录plugin

除了用vundle管理插件外,GVIM本身目录下的plugin目录里也可以安装插件,使用的方法就直接用命令调用就可以了
常用的如a.vim taglist.vim等
a.vim h,c文件相互跳转
taglist.vim 当前文件的标识显示
官方网站上有相关plugin下载的链接
https://www.vim.org/scripts/script_search_results.php?order_by=creation_date&direction=descending

ctags安装

下载ctags,同时添加到环境变量中,在打开VIM的使用,调用ctags -R的命令,来遍列代码标识,就可以实现,代码跳转,从引用到定义
https://sourceforge.net/projects/ctags/files/ctags/5.8/

YouCompleteMe安装

所谓youcompleteme安装,其实还是将youcompleteme在本地编译,至于安装是vundle,加载插件的时候,才加载的。
windows下安装,依赖项如下,如果只支持C语言的情况下,只需要预安装框起来的部分就可以,CMake安装后将路径添加至环境变量,下载并安装VS

cd C:\Program Files\Vim\vimfiles\bundle\YouCompleteMe
python install.py --clangd-completer --verbose

编译时也可以指定vs版本,例如--msvc 17

vimrc整个文件

点击查看代码
source $VIMRUNTIME/vimrc_example.vim

set guifont=Courier_New:h12:cANSI
set encoding=utf-8
set langmenu=zh_CN.UTF-8
language messages zh_CN.utf-8

set ignorecase
map <F7> :bp<ENTER>
map <F8> :bn<ENTER>
map <F2> <C-]>
map <F3> <C-o>
map <F4> :A<ENTER>
map <F11> <Esc>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
map <C-s> :w<ENTER>
inoremap <C-s> <Esc>:w<ENTER>
map <C-f> yw:vimgrep <C-r>0 **/*.{h,c}<LEFT><LEFT><LEFT><LEFT><LEFT><LEFT><LEFT><LEFT><LEFT><LEFT>
map <C-c> :copen<ENTER>
map <C-x> :cclose<ENTER>
map <C-F7> :call libcallnr("vimtweak.dll" , "SetAlpha" , 180)<ENTER>
map <C-F8> :call libcallnr("vimtweak.dll" , "SetAlpha" , 255)<ENTER>

set number
set ts=4
set shiftwidth=4
colorscheme desert
autocmd GUIEnter * simalt ~x

set nobackup
set noswapfile
set nowritebackup
set backupdir=D:\\Vim\\filebackup
set undodir=D:\\Vim\\undodir

autocmd VimEnter * PluginInstall
autocmd VimEnter * :q
autocmd VimEnter * NERDTree
autocmd VimEnter * :colorscheme morning
"autocmd VimEnter * FindFileCache .
set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg1 = substitute(arg1, '!', '\!', 'g')
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg2 = substitute(arg2, '!', '\!', 'g')
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let arg3 = substitute(arg3, '!', '\!', 'g')
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
      if empty(&shellxquote)
        let l:shxq_sav = ''
        set shellxquote&
      endif
      let cmd = '"' . $VIMRUNTIME . '\diff"'
    else
      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
  else
    let cmd = $VIMRUNTIME . '\diff'
  endif
  let cmd = substitute(cmd, '!', '\!', 'g')
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
  if exists('l:shxq_sav')
    let &shellxquote=l:shxq_sav
  endif
endfunction

let Tlist_Show_One_File = 1
let Tlist_Exit_OnlyWindow = 1
let Tlist_Sort_Type = "name"
let Tlist_Auto_Open = 1
let g:winManagerWindowLayout = 'FileExplorer|TagList'
	
set nocompatible              " 去除VI一致性,必须要添加
filetype off                  " 必须要添加

" 设置包括vundle和初始化相关的runtime path
set rtp+=$VIM/vimfiles/bundle/Vundle.vim
call vundle#rc('$VIM/vimfiles/bundle')
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
"call vundle#begin('~/some/path/here')

" 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim'

" 以下范例用来支持不同格式的插件安装.
" 请将安装插件的命令放在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'}

Plugin 'scrooloose/nerdtree' " 加入NERDTree

Plugin 'tomasr/molokai'

Plugin 'ycm-core/YouCompleteMe'

"Plugin 'wesleyche/SrcExpl'

"Plugin 'tenfyzhong/CompleteParameter.vim'
" 你的所有插件需要在下面这行之前
call vundle#end()            " 必须
filetype plugin indent on    " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
" 忽视插件改变缩进,可以使用以下替代:
"filetype plugin on
"
" 常用的命令
" :PluginList       - 列出所有已配置的插件
" :PluginInstall     - 安装插件,追加 `!` 用以更新或使用 :PluginUpdate
" :PluginSearch foo - 搜索 foo ; 追加 `!` 清除本地缓存
" :PluginClean      - 清除未使用插件,需要确认; 追加 `!` 自动批准移除未使用插件
"
" 查阅 :h vundle 获取更多细节和wiki以及FAQ
" 将你自己对非插件片段放在这行之后

let g:ycm_show_diagnostics_ui = 0
"let g:ycm_enable_diagnostic_signs = 0
posted @   cau_par  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示