Unless you are a vim or emacs aficionado you should probably prefer atom. However vim can be an excellent choice for linux and mac users, it is lighweight (runs from the console) commands available from vim:-
:!k9 --run % # will run the sketch
Watching Sketches (a pseudo REPL)
To watch sketches you should create a new folder (to avoid watching too many files).
mkdir watch # create a new folder k9 --create my_sketch 200 200 # create `my_sketch.rb` default is a bare sketch (set in config.yml) vim my_sketch.rb # fire up atom from command line (to pick up local environment) k9 --watch my_sketch.rb
Then in a second console
vim watch/my_sketch.rb # edit from relative path is fine
:wsketch will re-load (no need to quit vim)
Live coding with Pry
To do live editing with pry you should install either emacs or vim, but vim is probably the best. You also need to install the pry gem for use with jruby:-
jgem install pry # or jruby -S gem install pry # or if you must use rvm or rbenv not recommended
To make life easy change your
template: class from
You must configure pry to set vim as the pry editor
echo "Pry.config.editor = 'vim'" > ~/.pryrc.
Now you are set create a test sketch
k9 -c fred 200 200
To start the live session
k9 --live fred.rb
This should start the sketch and boot into a
To get the code listing as shown above enter
$ at the
pry prompt, to edit the empty draw method
edit -p Fred#draw at the
pry prompt once completed entry leave the
vim editor with
:wqa to save all changed buffers) and the sketch will be redrawn to to reflect the new content. But the beauty of the setup is that you can repeat the exercise
edit -p Fred#draw will reload vim with the
saved content that you can continue to edit.
You can read more about pry integration by following link.
Other advantages of vim
Also because vim is run from the console it is so easy to run old friends like
reek on your sketch code.
If you are millenial and allergic to the command line install atom, emacs is only for hardcore geeks. As yet I don’t think pry supports
atom as a editor.