Edited at

lemの設定についてメモ書き

More than 1 year has passed since last update.


はじめに

CommonLispで作られたエディタのlemの設定について、調べたことをメモ書きしていきます。

lemは以下から取得できます。


.lemrcファイル

ホームディレクトリに「.lemrc」というファイルを作成し、先頭に以下のコードを記載します。


.lemrc

(in-package :lem-user)



キーバインド

キーバインドを登録する場合は以下のように記載。


.lemrc

(define-key *global-keymap* "押下するキー" '実行される機能)


例) Undo機能のキーバインド


.lemrc

(define-key *global-keymap* "C-x u" 'undo)



シンタックスハイライト

既にあるテーマを使う場合は以下のように記載。


.lemrc

(load-theme "テーマ名")


例) 「emacs-dark」を使うには以下のコードを追記。


.lemrc

(load-theme "emacs-dark")


自分でテーマを作成する場合は以下のように記載。


.lemrc

(define-color-theme "テーマ名" ("親テーマ名")

(foreground "色値") ; 前景色
(background "色値") ; 背景色
(cursor :foreground "色値" :background "色値") ; カーソル色
(minibuffer-prompt-attribute :foreground "色値" :bold-p t) ; ミニバッファ色(太字)
(syntax-string-attribute :foreground "色値" :bold-p t) ; 文字列色(太字)
(syntax-comment-attribute :foreground "色値") ; コメント色
(syntax-keyword-attribute :foreground "色値" :bold-p t) ; キーワード色(太字)
(syntax-constant-attribute :foreground "色値") ; 定数色
(syntax-function-name-attribute :foreground "色値" :bold-p t) ; 関数色(太字)
(syntax-variable-attribute :foreground "色値")) ; 変数色

;; テーマをロード
(load-theme "テーマ名")


例) かなり適当に作成。


.lemrc

(define-color-theme "my-theme" ("emacs-dark")

(foreground "#FFFFFF") ; 前景色
(background "#000000") ; 背景色
(cursor :foreground "#222222" :background "#dddddd") ; カーソル色
(minibuffer-prompt-attribute :foreground "red" :bold-p t) ; ミニバッファ色(太字)
(syntax-string-attribute :foreground "green" :bold-p t) ; 文字列色(太字)
(syntax-comment-attribute :foreground "blue") ; コメント色
(syntax-keyword-attribute :foreground "orange" :bold-p t) ; キーワード色
(syntax-constant-attribute :foreground "cyan") ; 定数色
(syntax-function-name-attribute :foreground "blue" :bold-p t) ; 関数色
(syntax-variable-attribute :foreground "red")) ; 変数色

;; テーマをロード
(load-theme "my-theme")


こんな感じになりました。

Screenshot from 2018-01-27 22-21-17.png

この他にも設定が多々あります。

色々探して試してみるのも面白いかもしれません。


行番号表示

行番号を表示する場合は以下のコードを追記します。


.lemrc

(setf (variable-value 'lem.line-numbers:line-numbers :global) t)



最後に

とりあえず、自分がわかっている範囲で適当に記載していきました。

間違ってたり、他にもこんなことできるよ、とかあったら教えてくれると嬉しいです。