vivi.vim


Ⅰ. 插件描述

Support to setup Elixir development environment in Vim.

Ⅱ. 基本信息

创建日期:  2015-08-24
使用用户:  3
Github星:  22
插件作者:  Iizuka Masashi

Ⅲ. 安装方法

使用Vundle管理器安装

在你的.vimrc下添加:
Plugin 'liquidz/vivi-vim'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall

对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。

使用NeoBundle管理器安装

在你的.vimrc下添加:
NeoBundle 'liquidz/vivi-vim'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall

使用VimPlug管理器安装

在你的.vimrc下添加:
Plug 'liquidz/vivi-vim'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall

使用Pathogen管理器安装

在终端中运行以下命令:
cd ~/.vim/bundle
git clone https://github.com/liquidz/vivi.vim

Ⅳ. 文档说明

= vivi.vim

image:https://circleci.com/gh/liquidz/vivi.vim.svg?style=svg["Circle CI", link="https://circleci.com/gh/liquidz/vivi.vim"]

Do vim need a reason to help elixir developers?

== Features

  • Checking syntax
  • Mix integration
  • Viewing references
  • Omni completion

== Requirements

Vim 7.3.885 or later with link:http://vimdoc.sourceforge.net/htmldoc/if_lua.html[Lua] enabled

== Installation

.neobundle

[source,vim,subs="verbatim,macros"]

NeoBundle 'liquidz/vivi.vim', {

\ 'depends': [
\   'link:https://github.com/elixir-lang/vim-elixir[elixir-lang/vim-elixir]',
\   'link:https://github.com/Shougo/vimproc.vim[Shougo/vimproc.vim]',
\   'link:https://github.com/Shougo/neocomplete.vim[Shougo/neocomplete.vim]',
\   'link:https://github.com/thinca/vim-quickrun[thinca/vim-quickrun]',
\   'link:https://github.com/thinca/vim-ref[thinca/vim-ref]',
\   'link:https://github.com/osyo-manga/shabadou.vim[osyo-manga/shabadou.vim]',
\   'link:https://github.com/osyo-manga/vim-watchdogs[osyo-manga/vim-watchdogs]'
\ ]}

To use link:https://github.com/scrooloose/syntastic[Syntastic] instead of vim-watchdogs,
add scrooloose/syntastic and remove shabadou.vim and vim-watchdogs.

== Interface

=== Commands

[options="header,autowidth"]
|===
| command | notes
| ViviMixRun a| Run mix run $CURRENT_FILE in mix project, or run elixir $CURRENT_FILE.
| ViviMixDepsGet a| Run mix deps.get.
| ViviMixDepsUpdateAll a| Run mix deps.update --all.
| ViviMixTest a| Run mix test.
| ViviMixTestForCurrentLine a| Run mix test for current line number.
| ViviMixTestAgain a| Run mix test as same as last testing condition.
| ViviKillAllIEx | Kill all IEx processes.
|===

=== Key Mappings

[options="header,autowidth"]
|===
| mode | mapping | notes
| normal | <Plug>(vivi_mix_run) a| call ViviMixRun command.
| normal | <Plug>(vivi_mix_deps_get) a| call ViviMixDepsGet command.
| normal | <Plug>(vivi_mix_deps_update_all) a| call ViviMixDepsUpdateAll command.
| normal | <Plug>(vivi_mix_test) a| call ViviMixTest command.
| visual | <Plug>(vivi_mix_test_for_current_line) a| call ViviMixTestForCurrentLine command.
| normal | <Plug>(vivi_mix_test_again) a| call ViviMixTestAgain command.
| normal | <Plug>(vivi_kill_all_iex) a| call ViviKillAllIEx command.
|===

== Configuration

.Enables auto syntax checking. (default: DISABLED)
This option supports only vim-watchdogs.

[source,vim]

let g:vivi_enable_auto_syntax_checking = 1

.Enables default key mappings. (default: DISABLED)
Default key mappings is <<default_keymap,here>>.

[source,vim]

let g:vivi_enable_default_key_mappings = 1

.Change quickrun configration for mix run and mix test.

[source,vim]

let g:vivi_mix_run_config = { ... }

let g:vivi_mix_test_config = { ... }

.Enables auto warm up IEx concurrent process. (default: DISABLED)
Warming up IEx helps you get quick response in viewing reference or omni completion.

[source,vim]

let g:vivi_enable_auto_warm_up_iex = 1

.Enable omni completion. (default: DISABLED)

[source,vim]

let g:vivi_enable_omni_completion = 1

let g:neocomplete#enable_at_startup = 1 " RECOMMENDED

[[default_keymap]]
=== Default Key Mappings

[options="header,autowidth"]
|===
| mode | lhs | rhs | notes
| insert | >> | |> | Pipeline.
| normal | <Leader>r | <Plug>(vivi_mix_run) |
| normal | <Leader>t | <Plug>(vivi_mix_test_again) |
| visual | <Leader>t | <Plug>(vivi_mix_test_for_current_line) |
| normal | <Leader>vk | <Plug>(vivi_kill_all_iex) |
|===

[[omni_completion]]
== Omni Completion

Currently, vivi completes only module functions.

Manual setting example is here, if you don't want to use <<enable_omnicomp,g:vivi_enable_omni_completion>>.

[source,vim]

setlocal omnifunc=vivi#complete#omni

if !exists('g:neocomplete#sources#omni#input_patterns')
let g:neocomplete#sources#omni#input_patterns = {}
endif

let g:neocomplete#sources#omni#input_patterns.elixir = '1 *t].'

== License

Copyright (C) 2015 link:http://twitter.com/uochan[Masashi Iizuka]

Distributed under the MIT License.


  1. .[:digit: ↩

添加新评论