Help us understand the problem. What is going on with this article?

VimmerのためのCommon Lisp環境構築(Neovim + vlime編)

はじめに

この記事はVimmerな人たちのためのCommonLisp環境構築(slimv編)のvlime編です。
今回はNeovim+vlimeな環境をLinux上で構築してみます。

Windowsでの環境構築方法を追記しました

前提とする環境

  • OS : Ubuntu 18.04 64bit

インストール手順

Gitのインストール

sudo apt install git

Lisp処理系のインストール

sudo apt install sbcl

Neovimのインストール

sudo apt install neovim

Windowsの場合
ここからバイナリをダウンロードします。
https://github.com/neovim/neovim/releases/tag/v0.4.4

vim-plugとvlimeのインストール

今回はプラグインマネージャとしてvim-plugを使ってみます。
個人的にはインストールの簡単さとシンプルさがイイです。

インストール手順にしたがってインストールします。

curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

設定ファイルにvim-plugとvlimeを利用するための設定を追加します。

:e ~/.config/nvim/init.vim

以下を追記します。

call plug#begin('~/.vim/plugged')
" vlime
Plug 'l04m33/vlime', {'rtp' : 'vim/'}
" Paredit ※必須ではないけどおススメ、括弧の対応とってくれたりする
" Plug 'vim-scripts/paredit.vim'
call plug#end()

Neovimを再起動して以下を実行することでvlimeがインストールされます。

:PlugInstall

Windowsの場合

スクリプトをここからダウンロードして、%LOCALAPPDATA%\nvim\autoload\plug.vimに置きます。
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

設定ファイルにvim-plugとvlimeを利用するための設定を追加します。
Windowsの場合は設定ファイルは%LOCALAPPDATA%\nvim\init.vimに作成します。

以下を追記します。

call plug#begin('~/.vim/plugged')
" vlime
Plug 'l04m33/vlime', {'rtp' : 'vim/'}
" Paredit ※必須ではないけどおススメ、括弧の対応とってくれたりする
" Plug 'vim-scripts/paredit.vim'
call plug#end()

Neovimを再起動して以下を実行することでvlimeがインストールされます。

:PlugInstall

vlimeを使う

vlimeではslimvと異なり、サーバを別途立ち上げてそこにNeovimから接続しに行きます。

Neovimの外でサーバを立ち上げる操作が必要です。

サーバを立ち上げます。

cd ~/.vim/plugged/vlime/lisp
sbcl --load start-vlime.lisp

追記2020/9/25:
Windows版では事前に立ち上げなくても\\rrしたときに自動で立ち上がりました
Linux版は試していないのでわかりません

こんなかんじの表示がでたらOK

*  <INFO> [16:01:45] vlime-usocket - Server created: (#(127 0 0 1) 7002)

Neovimを立ち上げて適当な.lispファイルを開きます。

:e ~/test.lisp

\rrでREPLに接続できます。

適当にS式を書いて。。。

(defun hello (name)
  (format t "Hello ~A!" name))

(hello "kedama")

\\oeでカーソル下のS式をコンパイルします。

--
; compiling (DEFUN HELLO ...)--

\\seでカーソル下のS式を評価します。

Hello kedama!
NIL

基本的な使い方まとめ

  • \\rr : REPLに接続する
  • \\ss : カーソル下のS式またはアトムを評価する
  • \\se : カーソル下のS式を評価する
  • \\sa : カーソル下のアトムを評価する
  • \\oe : カーソル下のフォームををコンパイルする
  • \\rs : サーバを停止する。

詳細は:help vlimeを参照してください。

kedama17
SIerやってます。 趣味でrubyとLISP(Common Lisp)を書いてます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away