LoginSignup
13
15

More than 5 years have passed since last update.

common-lisp入門備忘録

Last updated at Posted at 2016-02-24

emacs と clisp のインストール

とりあえずclispで

$ sudo apt-get install clisp emacs

quicklisp のインストール

$ cd ~/
$ wget http://beta.quicklisp.org/quicklisp.lisp
$ clisp
CL-USER> (load "quicklisp.lisp")
CL-USER> (quicklisp-quickstart:install :path ".quicklisp/")
CL-USER> (ql:add-to-init-file)
CL-USER> (exit)

quicklisp からslimeをインストール

slimeとは emacs + common lisp な IDE

$ clisp
CL-USER> (ql:quickload :quicklisp-slime-helper)
To load "quicklisp-slime-helper":
  Load 1 ASDF system:
    quicklisp-slime-helper
; Loading "quicklisp-slime-helper"
.
slime-helper.el installed in "/Users/**/**/slime-helper.el"

To use, add this to your ~/.emacs:

  (load (expand-file-name "~/.quicklisp/slime-helper.el"))
  ;; Replace "sbcl" with the path to your implementation
  (setq inferior-lisp-program "sbcl")

CL-USER> (exit)

Emacs22 からは ~/.emacs ではなく ~/.emacs/init.elに書くべし

$ touch ~/.emacs.d/init.el
$ vim ~/.emacs.d/init.el

(load (expand-file-name "~/.quicklisp/slime-helper.el"))

(setq inferior-lisp-program "clisp")
;; ccl sbcl clisp など

;; SLIMEのロード
(require 'slime)
(slime-setup '(slime-repl slime-fancy slime-banner slime-indentation))

;; SLIMEからの入力をUTF-8に設定
(setq slime-net-coding-system 'utf-8-unix)

emacs+slimeでよくつかうコマンド

などを参照

  • M-x slime: slimeを起動
  • C-c C-]: 開いてる括弧をそこで全て閉じる括弧を追加する
  • C-c C-c: カーソル位置のフォームを一番外からコンパイルしてロード
  • C-c C-k: ファイル全体をコンパイルしてロード
  • C-c C-z: REPLを表示・移動
  • M-p: REPLの入力履歴を前へ
  • M-n: REPLの入力履歴を次へ
  • C-x o: 分割画面での移動
  • C-x C-b: バッファ一覧表示
  • C-x b [buffer]: 画面バッファの変更
  • C-x 2: 表示するバッファを上下に分割
  • C-x 3: 表示するバッファを左右に分割
  • C-x 1: 表示するバッファを選択画面のみにする
  • C-x 0: 選択画面を消す
  • C-l: 画面再描画
  • C-x k: 現在のバッファを閉じる
  • C-x f [ファイル名]: ファイルを開く
  • C-x C-s: ファイル保存
  • C-_: 元に戻す
  • C-/: やり直し
  • C-@: 選択
  • M-w: コピー
  • C-w: 切り取り
  • C-y: 貼り付け
  • C-c: 困ったら連打
  • なんか間違ったキーバインド入力してよくわからんくなったら C-g を連打する

コミュニティ・情報源

13
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
15