All Projects → liquidz → vivi.vim

liquidz / vivi.vim

Licence: MIT License
Support to setup Elixir development environment in Vim.

Programming Languages

Vim Script
2826 projects
elixir
2628 projects
Makefile
30231 projects

vivi.vim

Circle CI

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 Lua enabled

Installation

neobundle
NeoBundle 'liquidz/vivi.vim', {
    \ 'depends': [
    \   'elixir-lang/vim-elixir',
    \   'Shougo/vimproc.vim',
    \   'Shougo/neocomplete.vim',
    \   'thinca/vim-quickrun',
    \   'thinca/vim-ref',
    \   'osyo-manga/shabadou.vim',
    \   'osyo-manga/vim-watchdogs'
    \ ]}

To use Syntastic instead of vim-watchdogs, add scrooloose/syntastic and remove shabadou.vim and vim-watchdogs.

Interface

Commands

command notes

ViviMixRun

Run mix run $CURRENT_FILE in mix project, or run elixir $CURRENT_FILE.

ViviMixDepsGet

Run mix deps.get.

ViviMixDepsUpdateAll

Run mix deps.update --all.

ViviMixTest

Run mix test.

ViviMixTestForCurrentLine

Run mix test for current line number.

ViviMixTestAgain

Run mix test as same as last testing condition.

ViviKillAllIEx

Kill all IEx processes.

Key Mappings

mode mapping notes

normal

<Plug>(vivi_mix_run)

call ViviMixRun command.

normal

<Plug>(vivi_mix_deps_get)

call ViviMixDepsGet command.

normal

<Plug>(vivi_mix_deps_update_all)

call ViviMixDepsUpdateAll command.

normal

<Plug>(vivi_mix_test)

call ViviMixTest command.

visual

<Plug>(vivi_mix_test_for_current_line)

call ViviMixTestForCurrentLine command.

normal

<Plug>(vivi_mix_test_again)

call ViviMixTestAgain command.

normal

<Plug>(vivi_kill_all_iex)

call ViviKillAllIEx command.

Configuration

Enables auto syntax checking. (default: DISABLED)

This option supports only vim-watchdogs.

let g:vivi_enable_auto_syntax_checking = 1
Enables default key mappings. (default: DISABLED)

Default key mappings is here.

let g:vivi_enable_default_key_mappings = 1
Change quickrun configration for mix run and mix test.
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.

let g:vivi_enable_auto_warm_up_iex = 1
Enable omni completion. (default: DISABLED)
let g:vivi_enable_omni_completion = 1
let g:neocomplete#enable_at_startup = 1 " RECOMMENDED

Default Key Mappings

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

Currently, vivi completes only module functions.

Manual setting example is here, if you don’t want to use g:vivi_enable_omni_completion.

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 = '[^.[:digit:] *\t]\.'

License

Copyright © 2015 Masashi Iizuka

Distributed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].