之前用gvim7.3版本, 别人配的, 直接拿过来用, 时间关系, 也没怎么研究插件这一块, 趁这2天有点时间, 升级成8.1,在这次升级过程中,发现关于gvim, erlang相关配置文章不是很多,所以本次也记录一下,供大家参考,欢迎留言指导

下载 gvim8.1

安装, 这个就一路下一步完成就好,没什么特别设置

####### plug插件管理器配置

下载  plug.vim 至 vim81/autoload

_vimrc 文件起始新增配置

call plug#begin('D:\Vim\vim81\plugged')" ---------- 中间添加安装的插件名字
Plug 'scrooloose/nerdtree'
" ---------- 中间添加安装的插件名字call plug#end()" 插件nerdtree配置(F1开关)
map <f1> :NERDTreeToggle<cr>

" D:\Vim\vim81\plugged  " 是接下来安装插件的目录, 自行设置对应的

保存_vimrc, 启动gvim, 
执行命令  :PlugInstall

坐等插件自动安装完成即可, ---小白系列:插件plug详细安装

安装好后, 根据需要在_vimrc中添加对应的配置, 下面一一对应介绍, 可以全部配置完后再执行一次 :PlugInstall   或者每添加一个插件执行一次 :PlugInstall

PS: 下面所有的插件配置,分2个部分

1:  Plug ‘**********’       这个是放在 call plug#begin()  和 call plug#end()  中间
2: 插件的配置, 放在_vimrc文件的下方即可

=== 有的插件下载一次可能会失败, 没关系,多来几次就好了,如果来了10次还失败,那...你还是去手动安装这个插件吧

####### 文件资源管理器

Plug 'scrooloose/nerdtree'
" 插件nerdtree配置(F1开关) 配置
map <f1> :NERDTreeToggle<cr>

####### 文件搜索

Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
" 插件: fzf 配置
let g:fzf_colors =
\ { 'fg':      ['fg', 'Normal'],\ 'bg':      ['bg', 'Normal'],\ 'hl':      ['fg', 'Comment'],\ 'fg+':     ['fg', 'CursorLine', 'CursorColumn', 'Normal'],\ 'bg+':     ['bg', 'CursorLine', 'CursorColumn'],\ 'hl+':     ['fg', 'Statement'],\ 'info':    ['fg', 'PreProc'],\ 'border':  ['fg', 'Ignore'],\ 'prompt':  ['fg', 'Conditional'],\ 'pointer': ['fg', 'Exception'],\ 'marker':  ['fg', 'Keyword'],\ 'spinner': ['fg', 'Label'],\ 'header':  ['fg', 'Comment'] }
function! SearchServer()cd d:/xxwy.dev/server:FZF
endfunction
function! SearchTools()cd d:/xxwy.dev/tools:FZF
endfunction
map <leader>w :call SearchServer()<cr>
map <leader>q :call SearchTools()<cr>

安装完这个插件后会报错

点击这里下载fzf.exe, 找对应的下, 下完了之后把fzf.exe复制到 C:\Users\.....\.fzf\bin\fzf.exe 目录....是你的用户名

如果嫌fzf检索文件列表太慢,可以在_vimrc 文件中加一条如下语句

let $FZF_DEFAULT_COMMAND = "dir /s/b *.erl *.hrl"

####### 代码跳转, ctrl+]  跳转到定义

Plug 'vim-erlang/vim-erlang-tags'
" 插件: vim-erlang-tags 配置
set tags+=d:/xxwy.dev/server/tags
set tags+=d:/xxwy.dev/tools/tags
let g:erlang_tags_ignore = ['d:/xxwy.dev/tools', 'd:/xxwy.dev/server/cbin', 'd:/xxwy.dev/server/doc', 'd:/xxwy.dev/server/ebin', 'd:/xxwy.dev/server/tester']

在windown下, 修改vim81\plugged\vim-erlang-tags\plugin\vim-erlang-tags.vim

function! VimErlangTags()let exec_cmd = s:GetExecuteCmd()" let script_output = system(exec_cmd)let script_output = system('C:\erl8.3\bin\escript.exe ' . exec_cmd)if !v:shell_errorreturn 0elseechoerr "vim-erlang-tag " . script_outputendif
endfunction

注释第4行, 新增5行, 地址里面写自己安装的erlang地址,

需要更新跳转的时候, 在gvim执行 :ErlangTags 命令
可能遇到的报错:

error:taglist:exuberant ctags not found in PATH, plugin is not loaded
解决方案:下载ctagsExuberant Ctags,解压后把ctags.exe 文件, 复制到 C:Windows中

####### 自动补全

Plug 'maralla/completor.vim'
" 插件: completor.vim 配置
let g:completor_erlang_omni_trigger='[\w-]+:$'
let g:completor_complete_options='menuone,noselect'
"let g:completor_filesize_limit='1024'

安装maralla/completor.vim后, 启动如有报错,

Completor requires vim compiled with python or python3 and has features `job`, `timers` and `lambda`

解决方法:

在gvim中执行命令  :python print("11")

可以知道当前gvim是需要加载python27版本的,

下载 对应的windown pythone版本, 32位安装,

安装好后,在pythone安装目录找到 python27.dll 拷贝到 C:\Windows\System下

补充--后续换了个电脑,把对应的python27.dll(32位)拷贝到C:\Windows\System下,还是无效果,在gvim执行 :python print("11") 提示"Sorry, this command is disabled, the Python's site module could not be loaded",
解决办法:下载 python27(32位)的安装包后,配置好对应的环境变量, 让cmd能识别python命令即可

最终让gvim执行 :python print("11")  能正常输出11, 才能正常的使用补全插件

####### 自动补全(自己写的模块和方法)

Plug 'vim-erlang/vim-erlang-omnicomplete'
更改:vim81\plugged\vim-erlang-omnicomplete\autoload\erlang_complete.erl文件里的guess_build_system方法里的Makefile修改为EMakefile

安装好2个补全后 效果图


PS: 想要能识别出erlang的系统函数提示, 需要配置windows版的erlang系统变量, 让cmd能识别erl命令

#######  配色方案

Plug 'tyrannicaltoucan/vim-quantum'
" 插件: vim-quantum 配置
"let g:quantum_black=1
"set background=dark
"set termguicolors
colorscheme quantum

如果角色配色不好看, 后面可以去到vim81\colors目录下找到quantum.vim文件,根据自己喜好自行配置,也可以用命令更新配色,这里不做说明

####### 语法检查 (保存触发)

Plug 'scrooloose/syntastic'
"syntastic 配置
let g:syntastic_enable_signs=1
" let g:syntastic_auto_loc_list=1
" set statusline+=%#warningmsg#
" set statusline+=%{SyntasticStatuslineFlag()}
" set statusline+=%*
map <F2> :call ToggleErrors()<cr>   " F2 按键显示错误列表
function! ToggleErrors()if !exists("g:errors_is_show")let g:errors_is_show = 0endifif g:errors_is_showlet g:errors_is_show = 0lcloseelselet g:errors_is_show = 1" Errors 需要Syntastic插件支持Errorsendif
endfunction

错误提示,这里还有其他很多的插件,syntaxerl和ale配合在mac或linux配置可行,但是windown没捣鼓出来,
syntastic同步检查语法,erl文件太大可能有点卡,不过胜在最简单

安装好后,错误提示示意图

#######显示缩进

" 插件: vim-indent-guides 配置
let g:indent_guides_enable_on_vim_startup = 1
set ts=4 sw=4 et
let g:indent_guides_start_level=1
let g:indent_guides_guide_size=1

#######括号自动补全
Plug 'Raimondi/delimitMate'

#######括号颜色

Plug 'luochen1990/rainbow'
" 插件: luochen1990/rainbow 配置
let g:rainbow_active=1
let g:rainbow_conf={\  'guifgs': ['#b7bdc0', '#7681de',  'seagreen3', 'darkorange3'],\}

安装下面2个和git相关的插件的时候, 需要安装windows版的git, 安装好后,同样需要配置git的环境变量, 让cmd能识别git命令即可
下载地址

#######vim 操作 git 并显示分支
Plug 'tpope/vim-fugitive'

#######显示git diff   [;d]执行
Plug 'airblade/vim-gitgutter'

#######导航栏主题
Plug 'vim-airline/vim-airline-themes'

Plug 'vim-airline/vim-airline'
" 插件: airline 配置
let g:airline_theme='bubblegum'             " 草绿色[bubblegum], 墨绿色[luna], 亮黄色[dark_minimal],
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1
let g:airline#extensions#whitespace#enabled = 0
let g:airline#extensions#whitespace#symbol = '!'
if !exists('g:airline_symbols')let g:airline_symbols = {}
endif
let g:airline_left_sep = ''                " 选中标签开始图标
let g:airline_left_alt_sep = '@'            " 非选中标签开始图标
let g:airline_right_sep = '<<'
let g:airline_right_alt_sep = '$'
let g:airline_symbols.branch = '>>'
let g:airline_symbols.readonly = '^'
"let g:airline_symbols.linenr = '&'
let g:airline_symbols.linenr = '*'
let g:airline_symbols.maxlinenr = '>'
if has("gui_running")let g:airline_extensions = ['branch', 'tabline']
endif
let g:airline_highlighting_cache = 1
let g:airline_powerline_fonts = 1 

g:airline_theme有很多主题可以选择,  点击查看主题列表, 去挑一个自己喜欢的吧!

插件全部配好后, 就可以愉快的撸代码了, 其他的设置看自己喜好慢慢打磨吧,

没有最好的ide, 只有最合适自己的ide

" -------------------------------------------------------------
" vim配置
" @author xxuch@qq.com
" -------------------------------------------------------------call plug#begin('D:\Vim\vim81\plugged')Plug 'scrooloose/nerdtree'                          " 文件资源管理器,标签
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'                             " 文件搜索
Plug 'scrooloose/syntastic'                         " 语法检查
Plug 'maralla/completor.vim'                        " 代码补全
Plug 'vim-erlang/vim-erlang-omnicomplete'           " 代码补全,2个配合使用
Plug 'vim-erlang/vim-erlang-tags'                   " 代码跳转
Plug 'tyrannicaltoucan/vim-quantum'                 " 配色方案
Plug 'nathanaelkane/vim-indent-guides'              " 显示缩进
Plug 'Raimondi/delimitMate'                         " 括号自动补全
if has("gui_running")Plug 'luochen1990/rainbow'                      " 括号颜色Plug 'airblade/vim-gitgutter'                   " 显示git diff   [;d]执行Plug 'tpope/vim-fugitive'                       " vim 操作 git 并显示分支Plug 'vim-airline/vim-airline'                  " 美化导航栏Plug 'vim-airline/vim-airline-themes'           " 导航栏主题
endifcall plug#end()" ########## 基本配置 ##########
set nocompatible                                    " 关闭vi兼容模式
syntax enable                                       " 语法识别
syntax on                                           " 语法高亮
filetype on                                         " 识别文件类型
filetype plugin on                                  " 根据文件类型匹配插件
filetype indent on                                  " 根据文件类型匹配缩进规则
set termencoding=utf-8                              " 终端编码格式
set encoding=utf-8                                  " 内部编码格式 buffer 菜单 消息等
set expandtab tabstop=4                             " tab转换为空格,宽度4
set shiftwidth=4                                    " >>缩进规则的字符数
set number                                          " 显示行号
"set cursorcolumn                                   " 开启光亮光标列
set cursorline                                      " 开启光亮光标行
set grepprg=findstr\ /n/s                           " 设置搜索模式
set t_Co=256                                        " 强制开启256色
set laststatus=2                                    " 状态栏[0:不显式, 1:多余1小时显示, 2:显示]
set statusline=%f\ \%h%m%r%r%=%-35(%l,%c\ [0x%B]\ (%L\ lines)\ [%{&ff}:%{&fenc}]\ %y%)\ %P
" 窗口简洁点
if has("gui_running")set guioptions=                                 " 关闭菜单栏let g:indent_guides_guide_size = 1              " 添加行,对齐线的宽度(1)let g:indent_guides_enable_on_vim_startup = 1   " 开启缩进
endif" ########## 文件配置 ##########
set nobackup                                        " 不创建备份文件
set noswapfile                                      " 不创建减缓文件
set noundofile                                      " 不保留撤销历史
"set undofile                                       " 保留撤销历史(没使用git|svn的建议开启这个)
"set undodir=d:/.vim/.undo/                         " 转移撤销文件路径,和set undofile配套使用
let mapleader = ";"                                 " 设置leader键
let g:mapleader = ";"                               " 设置leader键map <leader>n :tabnew ./<cr>                        " 新标签
map <leader>f :new ./<cr>                           " 分割面板,上下
map <leader>v :vnew ./<cr>                          " 分割面板,左右
map <leader>s :sp<cr>                               " 复制当前窗口,上下
map <leader>b :tabp<cr>                             " 在当前面板中新创建一个面板,左右cd d:/xxwy.dev/server                               " 开启默认目录
map <f1> :NERDTreeToggle<cr>                        " 打开文件浏览窗口
map <leader>` :NERDTree %:p:h<cr>                   " 打开当前目录窗口
map <leader>1 :cd d:/xxwy.dev/server<cr>            " 跳转目录
map <leader>2 :cd d:/xxwy.dev/tools<cr>             " 跳转目录" 梆定quickfix快捷键
nmap <leader>cc :cc<cr>                             " 跳转到当前
nmap <leader>cn :cn<cr>                             " 跳转到下一个
nmap <leader>cp :cp<cr>                             " 跳转到上一个
nmap <leader>co :copen<cr>                          " 打开quickfix窗口
nmap <leader>cq :cclose<cr>                         " 关闭quickfix窗口" ########## autocmd ##########
if has("autocmd")                                                          " 记录上次修改文件的位置au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif                                                        " 在注释行回车,下一行自动新增注释autocmd FileType erlang set omnifunc=erlang_complete#Complete" 设置loclist 和 quickfix在跨越底部栏显示autocmd FileType qf wincmd J        " 当NerdTree 为剩下唯一窗口是自动关闭autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
endif " ########## 自定义 ##########
" 转到定义处
map <F3> <C-]>
" 当前行下面新增一空行,光标定位在新的一行起始位置
map <S-enter> o
imap <S-enter> <Esc>o
" 删除行
imap <C-d> <Esc>ddi
map <C-d> dd
" 用Tab键和Shift-Tab键来缩进文本
imap <s-tab> <Esc>:<<cr>i
" 后退
map <A-left> <C-o>
" 前进-好像有冲突
map <A-right> <C-i>
" 复制当前行到上一行
imap <C-A-up> <Esc>yypi
map <C-A-up> <Esc>yypi
" 当前行和上一行进行调换
imap <A-up> <Esc>yyddkPi
map <A-up> <Esc>yyddkP<Esc>
"  当前行和下一行进行调换
imap <A-down> <Esc>yyddpi
map <A-down> <Esc>yyddp<Esc>
" 用tab切换2个打开分页窗口
map <Tab> <C-w><C-w>
" 进入输入模式,光标跳到当前行的最后
map <S-i> i<End>
" 所有查找都从上往下顺序,并且停留在当前行
map # *
map * *N" ########## 插件配置 ##########
" 插件: completor.vim
let g:completor_erlang_omni_trigger='[\w-]+:$'
let g:completor_complete_options='menuone,noselect'
"let g:completor_filesize_limit='1024'" 插件: vim-erlang-tags
set tags+=d:/xxwy.dev/server/tags
set tags+=d:/xxwy.dev/tools/tags
let g:erlang_tags_ignore = ['d:/xxwy.dev/tools', 'd:/xxwy.dev/server/cbin', 'd:/xxwy.dev/server/doc', 'd:/xxwy.dev/server/ebin', 'd:/xxwy.dev/server/tester']" 插件: vim-gitgutter
let g:gitgutter_enabled=0
let g:gitgutter_map_keys=0
map <leader>d :GitGutterToggle<cr>                  " 切换显示
"autocmd BufWritePost * GitGutter" 插件: vim-quantum
"let g:quantum_black=1
"set background=dark
set termguicolors
colorscheme quantum" 插件: syntastic
let g:syntastic_enable_signs=1
" let g:syntastic_auto_loc_list=1
" set statusline+=%#warningmsg#
" set statusline+=%{SyntasticStatuslineFlag()}
" set statusline+=%*
map <F2> :call ToggleErrors()<cr>                   " F2 按键显示错误列表
function! ToggleErrors()if !exists("g:errors_is_show")let g:errors_is_show = 0endifif g:errors_is_showlet g:errors_is_show = 0lcloseelselet g:errors_is_show = 1Errorsendif
endfunction" 插件: luochen1990/rainbow
let g:rainbow_active=1
let g:rainbow_conf={\  'guifgs': ['#b7bdc0', '#7681de',  'seagreen3', 'darkorange3'],\}" 插件: airline
let g:airline_theme='bubblegum'                     " 草绿色[bubblegum], 墨绿色[luna], 亮黄色[dark_minimal],
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1
let g:airline#extensions#whitespace#enabled = 0
let g:airline#extensions#whitespace#symbol = '!'
if !exists('g:airline_symbols')let g:airline_symbols = {}
endif
let g:airline_left_sep = ''      " 选中标签最前显示
let g:airline_left_alt_sep = ''  " 非选中标签最前显示
let g:airline_right_sep = '<<'
let g:airline_right_alt_sep = '$'
let g:airline_symbols.branch = '>>'
let g:airline_symbols.readonly = '^'
"let g:airline_symbols.linenr = '&'
let g:airline_symbols.linenr = '*'
let g:airline_symbols.maxlinenr = '>'
if has("gui_running")let g:airline_extensions = ['branch', 'tabline']
endif
let g:airline_highlighting_cache = 1
let g:airline_powerline_fonts = 1 " 插件: vim-indent-guides
let g:indent_guides_enable_on_vim_startup = 1
set ts=4 sw=4 et
let g:indent_guides_start_level=1
let g:indent_guides_guide_size=1" 插件: fzf
let g:fzf_colors =
\ { 'fg':      ['fg', 'Normal'],\ 'bg':      ['bg', 'Normal'],\ 'hl':      ['fg', 'Comment'],\ 'fg+':     ['fg', 'CursorLine', 'CursorColumn', 'Normal'],\ 'bg+':     ['bg', 'CursorLine', 'CursorColumn'],\ 'hl+':     ['fg', 'Statement'],\ 'info':    ['fg', 'PreProc'],\ 'border':  ['fg', 'Ignore'],\ 'prompt':  ['fg', 'Conditional'],\ 'pointer': ['fg', 'Exception'],\ 'marker':  ['fg', 'Keyword'],\ 'spinner': ['fg', 'Label'],\ 'header':  ['fg', 'Comment'] }
function! SearchServer()cd d:/xxwy.dev/server:FZF
endfunction
function! SearchTools()cd d:/xxwy.dev/tools:FZF
endfunction
map <leader>w :call SearchServer()<cr>
map <leader>q :call SearchTools()<cr>source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

win gvim erlang 环境配置相关推荐

  1. Gvim开发环境配置笔记--Windows篇

    环境:Windows7 旗舰版 1.安装Gvim7.3 : 下载地址http://www.vim.org/download.php#pc. 2.安装中文帮助:vimcdoc-1.8.0-setup.e ...

  2. Gvim开发环境配置笔记--Windows篇(转)

    原文地址:http://blog.csdn.net/anders_zhuo/article/details/8949003 1.安装Gvim7.3 : 下载地址http://www.vim.org/d ...

  3. linux下flex与bison源码安装,Win flex-bison开发环境配置

    Flex-Bison是一套很好很方便的工具,但是主要基于Linux,对于我这种喜(懒)欢(于)使(学)用(习) Windows(Linux)的主,希望能够在windows环境中使用这套工具.所幸,国外 ...

  4. Win 系统 CUDA 环境配置及卸载

    目录 1.下载并安装CUDA 2.安装cudnn 3.环境变量配置 4.CUDA的卸载 1.下载并安装CUDA 查看自己电脑支持的 cuda 版本,或者选择自己需要的 cuda 版本安装.(本教程以c ...

  5. win 下 docker 环境配置

    声明 此文只针对 win7.win10 家庭版等用户操作系统,因为这些系统无法使用 windows 的 Hyper-V 虚拟技术.只能借助于 Virtual Box 虚拟机来使用 docker. Do ...

  6. linux gvim 配置文件,Gvim一些基本配置

    介绍一些关于Gvim(windows 7 32位 Vim 7.4)的基本配置,除了特别说明,代码一律添加在安装目录下的_vimrc文件中. 1.取消自动备份,这行代码需要添加在 _vimrc文件中的b ...

  7. Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)

    Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇) 折腾了两三天总算顺利在电脑上完成了装x的双系统安装,一路走来还比较顺利,主要在ubuntu的显卡设置上躺了 ...

  8. 从win+ubuntu双系统安装到ubuntu环境配置和美化

    从win+ubuntu双系统安装到ubuntu环境配置和美化 配置完成的ubuntu:Flatabulous主题+Dock工具栏+Compiz+启动器栏隐藏 一.安装双系统

  9. win7 64位系统 win CE6.0模拟器开发环境配置

    win7 64位系统安装 win CE6.0模拟器开发环境配置 win7 64位系统安装 win CE60模拟器开发环境配置 本章讲解需要的原料 我们对win 7系统的构造都已经很熟悉了在这里不在赘述 ...

  10. 原神服务端搭建架设教程win系统(附客户端+服务端+环境配置)

    原神服务端搭建架设教程win系统(附客户端+服务端+环境配置) 大家好,我是艾西原神一款开放世界冒险3D游戏以七种元素(分别为风.雷.岩.火.水.草.冰)交汇的幻想世界"提瓦特"创 ...

最新文章

  1. R语言dplyr包mutate_all函数一次性处理所有的数据列的内容(使用统一的函数)实战
  2. Python知识点笔记-条件选择、循环和函数
  3. is属性用法 vue_vue组件讲解(is属性的用法)模板标签替换操作
  4. Scikit-Learn 机器学习笔记 -- 决策树
  5. 协议簇: Media Access Control(MAC) Frame 解析
  6. 机器学习里的kernel是指什么?
  7. C# error CS1729: 'XXClass' does not contain a constructor that takes 0 arguments的解决方案
  8. IDEA快捷键拆解系列(三):Edit篇
  9. 无线打印机 连接路由器连接到服务器,怎么通过无线路由器连到有的打印机线网络...
  10. Python基础模块
  11. 我的招聘网——用户登录模块设计与实现
  12. 【rmzt】美女之目露凶光win7主题
  13. 刷排名优优软件_QQ群排名技术原理
  14. 想用好低代码这把“双刃剑”,先搞清楚这三个问题|低代码系列(四)
  15. word插入脚注后最后一页多了一个分页符(下一页),导致最后多了一个空白页,删除不掉。
  16. 前后端跨语言RSA加解密和签名验证实现(js+python)
  17. slice,split,splice的区别与用法
  18. creo草绘工程图标注字体大小、加粗设置
  19. ultraedit15.00.0.1046注册码
  20. Chrome如何搜索历史收藏的书签

热门文章

  1. android提交sql语句,sql的提交 - 亭子happy的个人页面 - OSCHINA - 中文开源技术交流社区...
  2. 【例题4-2 uva489】Hangman Judge
  3. 尚学堂1811期python视频_尚学堂1811期人工智能全套视频教程震撼发布,转型百万年薪工程师!...
  4. 【模型 6.0】以前的你遇事不知所措,现在的你可以镇定自若,靠它!
  5. 华为OD机试题:按区间反转文章片段
  6. sql server2000安装quot;挂起quot;的解决方法
  7. android游戏备份农场,zynga旗下的虚拟农场farmville将正式进入android平台
  8. WebSocket is already in CLOSING or CLOSED state
  9. python numpy逆_python-使用numpy的矩阵逆
  10. 文档类型字符集即HTML标签的语义化