An open API service indexing awesome lists of open source software.

https://github.com/veelenga/vicr

:v: Vim-like Interactive CRystal
https://github.com/veelenga/vicr

crystal interactivity vim

Last synced: 2 months ago
JSON representation

:v: Vim-like Interactive CRystal

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/veelenga/vicr.svg?branch=master)](https://travis-ci.org/veelenga/vicr)

Vicr stands for **"Vim-like Interactive CRystal"** and represents a tiny command line application
that designed to quickly execute Crystal code with fast feedback and options to proceed:

![](https://github.com/veelenga/bin/raw/master/vicr/demo.gif)

## Installation

### OS X

```sh
$ brew tap veelenga/tap
$ brew install vicr
```

### From sources:

```sh
$ git clone https://github.com/veelenga/vicr
$ cd vicr
$ make
$ sudo make install
```

## Usage

Open terminal, run `vicr`, write your Crystal program, save and exit.

### Options

Vicr is able to load file content for you to start playing with Crystal code straight away.
For example:

```sh
# loads local file
$ vicr src/vicr/cli.cr

# loads Github file
$ vicr https://github.com/manastech/crystal/blob/master/samples/2048.cr

# loads Github gist
$ vicr https://gist.github.com/veelenga/a5b861ccd32ff559b7d2#file-benchmark_test-cr

# loads CarcIn file
$ vicr https://carc.in/#/r/rlj

# loads play.crystal-lang.org file
$ vicr https://play.crystal-lang.org/#/r/rlj

# loads raw file
$ vicr http://example.com/program.cr
```

Use help (`-h` flag) for more information.

### Customization

It is possible to configure Vicr start-up settings using `~/.vicr/init.yaml` configuration file.
You can customize settings and use your favorite editor and even change compiler params:

```yml
# ~/.vicr/init.yaml
---
editor:
executable: nvim
args:
- "--cmd"
- "set paste"

compiler:
executable: crystal
args_before:
- "run"
- "--no-debug"
```

## Contributing

If you feel like you have a good idea to be implemented, please open a discussion.
If you found a defect and enough motivated to fix it, pull requests are welcome.