diff --git a/.vim/ftplugin/scheme/icp1.vim b/.vim/ftplugin/scheme/icp1.vim new file mode 100644 index 0000000..851fbe7 --- /dev/null +++ b/.vim/ftplugin/scheme/icp1.vim @@ -0,0 +1,31 @@ +" +" Originally from: +" https://github.com/ward/dotfiles/blob/master/vim/ftplugin/scheme/icp1.vim +" + +fu! s:OpenR5RS(path) + let prelude = [ + \ "(#%require xrepl)", + \ "(load \"" . a:path . "\")", + \ "\" + \ ]->join("") + let s:term = term_start("plt-r5rs --no-prim", {"term_finish": "close", "vertical": 1}) + call term_sendkeys("", prelude) +endfu + +fu! s:GetVisualSelection() + try + let a_save = @a + normal! gv"ay + return @a + finally + let @a = a_save + endtry +endfu + +fu! s:SendR5RSkeys() + call term_sendkeys(s:term, s:GetVisualSelection()) +endfu + +nnoremap o :call OpenR5RS(@%) +vnoremap r :call SendR5RSkeys()