generated at
vlime
概要
Vim/Neovim向けのCommon Lisp開発環境

インストール
toml
[[plugins]] repo = 'l04m33/vlime' on_ft = 'lisp' rtp = 'vim'

設定
vim
" Leaderを,に設定 let g:vlime_leader = ","

key-mapping
<vlime-leader>cc既存のREPLへ接続する。
<vlime-loader>cdREPLへの接続を切断する。
<vlime-leader>rrREPLを起動。起動する処理系はg:vlime_cl_implで設定できる。
<vlime-leader>rsREPLを停止
<vlime-leader>ss選択している行をREPLへ送る。

vlimeからRoswellを利用する
vim
let g:vlime_cl_impl = "ros" function! VlimeBuildServerCommandFor_ros(vlime_loader, vlime_eval) abort return ["ros", "run", \ "--load", a:vlime_loader, \ "--eval", a:vlime_eval] endfunction

vlimeからqlotを利用する
vim
let g:vlime_cl_impl = "qlot" function! VlimeBuildServerCommandFor_qlot(vlime_loader, vlime_eval) abort return ["qlot", "exec", "ros", "run", "--load", a:vlime_loader, "--eval", a:vlime_eval] endfunction

asyncomplete.vimとの統合
vimrcに以下の設定を書いておくと、asyncomplete.vimを使った自動補完ができるようになります。
vim
autocmd User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#vlime#get_source_options({ 'priority': 10 }))

REPLの接続に失敗する(Neovim)
,rr でREPLへ接続に失敗してしまう。
g:vlime_neovim_connector のデフォルト値にncatが設定されているのが原因。
Ubuntuにはデフォルトでncatが入っていないため、コマンドの実行に失敗してしまう。
以下は、 nc (netcat)コマンドを利用する際の設定例。(将来的に g:vlime_neovim_connector は非推奨化されるようなので注意)
vim
let g:vlime_neovim_connector = "nc" function! VlimeBuildConnectorCommandFor_nc(host, port, timeout) if type(a:timeout) == type(v:null) return ['nc', a:host, string(a:port)] else return ['nc', '-w', string(a:timeout / 1000.0), a:host, string(a:port)] endif endfunction

参考