win gvim erlang 环境配置
之前用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 环境配置相关推荐
- Gvim开发环境配置笔记--Windows篇
环境:Windows7 旗舰版 1.安装Gvim7.3 : 下载地址http://www.vim.org/download.php#pc. 2.安装中文帮助:vimcdoc-1.8.0-setup.e ...
- Gvim开发环境配置笔记--Windows篇(转)
原文地址:http://blog.csdn.net/anders_zhuo/article/details/8949003 1.安装Gvim7.3 : 下载地址http://www.vim.org/d ...
- linux下flex与bison源码安装,Win flex-bison开发环境配置
Flex-Bison是一套很好很方便的工具,但是主要基于Linux,对于我这种喜(懒)欢(于)使(学)用(习) Windows(Linux)的主,希望能够在windows环境中使用这套工具.所幸,国外 ...
- Win 系统 CUDA 环境配置及卸载
目录 1.下载并安装CUDA 2.安装cudnn 3.环境变量配置 4.CUDA的卸载 1.下载并安装CUDA 查看自己电脑支持的 cuda 版本,或者选择自己需要的 cuda 版本安装.(本教程以c ...
- win 下 docker 环境配置
声明 此文只针对 win7.win10 家庭版等用户操作系统,因为这些系统无法使用 windows 的 Hyper-V 虚拟技术.只能借助于 Virtual Box 虚拟机来使用 docker. Do ...
- linux gvim 配置文件,Gvim一些基本配置
介绍一些关于Gvim(windows 7 32位 Vim 7.4)的基本配置,除了特别说明,代码一律添加在安装目录下的_vimrc文件中. 1.取消自动备份,这行代码需要添加在 _vimrc文件中的b ...
- Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)
Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇) 折腾了两三天总算顺利在电脑上完成了装x的双系统安装,一路走来还比较顺利,主要在ubuntu的显卡设置上躺了 ...
- 从win+ubuntu双系统安装到ubuntu环境配置和美化
从win+ubuntu双系统安装到ubuntu环境配置和美化 配置完成的ubuntu:Flatabulous主题+Dock工具栏+Compiz+启动器栏隐藏 一.安装双系统
- win7 64位系统 win CE6.0模拟器开发环境配置
win7 64位系统安装 win CE6.0模拟器开发环境配置 win7 64位系统安装 win CE60模拟器开发环境配置 本章讲解需要的原料 我们对win 7系统的构造都已经很熟悉了在这里不在赘述 ...
- 原神服务端搭建架设教程win系统(附客户端+服务端+环境配置)
原神服务端搭建架设教程win系统(附客户端+服务端+环境配置) 大家好,我是艾西原神一款开放世界冒险3D游戏以七种元素(分别为风.雷.岩.火.水.草.冰)交汇的幻想世界"提瓦特"创 ...
最新文章
- R语言dplyr包mutate_all函数一次性处理所有的数据列的内容(使用统一的函数)实战
- Python知识点笔记-条件选择、循环和函数
- is属性用法 vue_vue组件讲解(is属性的用法)模板标签替换操作
- Scikit-Learn 机器学习笔记 -- 决策树
- 协议簇: Media Access Control(MAC) Frame 解析
- 机器学习里的kernel是指什么?
- C# error CS1729: 'XXClass' does not contain a constructor that takes 0 arguments的解决方案
- IDEA快捷键拆解系列(三):Edit篇
- 无线打印机 连接路由器连接到服务器,怎么通过无线路由器连到有的打印机线网络...
- Python基础模块
- 我的招聘网——用户登录模块设计与实现
- 【rmzt】美女之目露凶光win7主题
- 刷排名优优软件_QQ群排名技术原理
- 想用好低代码这把“双刃剑”,先搞清楚这三个问题|低代码系列(四)
- word插入脚注后最后一页多了一个分页符(下一页),导致最后多了一个空白页,删除不掉。
- 前后端跨语言RSA加解密和签名验证实现(js+python)
- slice,split,splice的区别与用法
- creo草绘工程图标注字体大小、加粗设置
- ultraedit15.00.0.1046注册码
- Chrome如何搜索历史收藏的书签
热门文章
- android提交sql语句,sql的提交 - 亭子happy的个人页面 - OSCHINA - 中文开源技术交流社区...
- 【例题4-2 uva489】Hangman Judge
- 尚学堂1811期python视频_尚学堂1811期人工智能全套视频教程震撼发布,转型百万年薪工程师!...
- 【模型 6.0】以前的你遇事不知所措,现在的你可以镇定自若,靠它!
- 华为OD机试题:按区间反转文章片段
- sql server2000安装quot;挂起quot;的解决方法
- android游戏备份农场,zynga旗下的虚拟农场farmville将正式进入android平台
- WebSocket is already in CLOSING or CLOSED state
- python numpy逆_python-使用numpy的矩阵逆
- 文档类型字符集即HTML标签的语义化