読者です 読者をやめる 読者になる 読者になる

亀岡的プログラマ日記

京都のベッドタウン、亀岡よりだらだらとお送りいたします。

Cask init して入ってくるライブラリ一覧

遅ればせながら、Emacsのパッケージ管理にcaskはじめました。最近、依存ライブラリはこういうレシピ記述系が本当に盛んですねぇ。宣言的なの、好きです。

てなわけで、勇んで入れてみたのですが、とくに何も考えずにinitしたら見覚えのないライブラリがちょこちょこ入ってきたので、ざっと調べてみました。

bind-key.el

emacsキーバインドの記述を統一的、かついい感じに書かせてくれるライブラリ。例えば、、、

;; キーバインド追加
(bind-key "C-c x" 'my-ctrl-c-x-command)

;; 全マイナーモードに対しキーバインドを上書き
(bind-key* "<C-return>" 'other-window)

;; 特定のモードにキーバインドを追加
(bind-key "C-c x" 'my-ctrl-c-x-command some-other-mode-map)

;; 特定のモードでキーバインドを削除
(unbind-key "C-c x" some-other-mode-map)

;; キーバインドを表記
M-x describe-personal-keybindings

cask.el

さすがにこれは省略。

dash.el

リスト操作をhaskell的な宣言的な記法を導入できる。例えば、、、

(-map #'(lambda (x) (* x x)) '(1 2 3)) ;; => '(1 4 9)
(--map (* it it) '(1 2 3)) ;; => '(1 4 9)

drag-stuff.el

行、Region、単語などをDragできるようになる拡張モード。

exec-path-from-shell.el

パスの設定をShellから引き継ぎます。そのままっちゃそのまま。

expand-region

これは僕も愛用中。Regionをずんずん拡大してくれる。空気はだいたい読んでくれるので、quickrunやらRegion選択系との相性が非常によろしい。

f.el

ファイル処理系の関数をうまいことラップしてくれている感じ。あんまりelisp書かないので、「デフォルトだとこんなに書きにくいんだ」とびっくりする程度の能力なので、紹介は割愛。

flycheck.el

flymakeの置き換えを志向している、シンタックスチェックのライブラリ。

flycheck-cask.el

Caskを使っている時に、flycheckの依存ライブラリにCaskでインストールされたモジュールを使うライブラリ。

htmlize.el

これはバッファに表示している内容をハイライトをつけたまま html に変換する lisp です。

というわけで。blogとかに貼っつけるときに便利ですね(最近のblogはたいがいのシンタックスハイライトできちゃいますが。)

idle-highlight-mode.el

カーソルがある単語をハイライト表示するelisp

magit.el

これは有名ドコロですね。

multiple-cursor.el

カーソルを複数表示して、一気に編集作業をやってくれる素敵elisp。これがないと書いてられんってくらい愛用中。

nyan-mode.el

にゃん。

pallet.el

package.elでインストールしたものをしれっとCaskに追加してくれる。

popwin.el

これは僕の中で必須elisp。ていうか入れてない人はどうやってサブウィンドウ表示しているんだろう?ってレベル。

prodigy.el

emacsで外部サービス(プロセス)を管理するelisp

projectile.el

gitなどのバージョン管理ファイルをプロジェクトとみなして、プロジェクトへの操作を提供するライブラリ。dot filesにすぐ飛べたりとか、プロジェクト内検索とかは便利そう。

s.el

これは文字列操作を簡潔化してくれる。

;;分割
(s-split "|" "a|bc|12|3") ;; => '("a" "")
(s-split "|" "a|bc|12|3") ;; => ‘("a" "bc" "12" "3")

;;結合
(s-join "+" '("abc" "def" "ghi")) ;; => "abc+def+ghi"
(s-join "\n" '("abc" "def" "ghi")) ;; => "abc\ndef\nghi"

;;マッチ
(s-match "^def" "abcdefg") ;; => nil
(s-match "^abc" "abcdefg") ;; => '("abc")
(s-match "^/.*/\\([a-z]+\\)\\.\\([a-z]+\\)" "/some/weird/file.html")

smartparens.el

基本的には閉じカッコ補完系のライブラリ。でもカッコの種類が非常に多かったり自分で定義できたりなど、使いではありそう。

smex.el

Smex is a M-x enhancement for Emacs. Built on top of IDO, it provides a convenient interface to your recently and most frequently used commands. And to all the other commands, too.

だそうで、M-x拡張です。うーん、helm-Mxで困ってないんだけれど、ちょっと試してみるかぁ、

use-package.el

elispのrequire宣言を簡潔化してくれるelisp

こんな感じで。

;; これで存在確認してなければ警告(落ちない)、あればロードしてくれる
(use-package foo)

;; 初期化コードを書く場合
(use-package foo
  :init
  (progn
    (setq foo-variable t)
    (foo-mode 1)))
    
;; キーバインドを書く場合
(use-package ace-jump-mode
  :bind ("C-." . ace-jump-mode))

;; モードとインタプリタを指定
(use-package ruby-mode
  :mode "\\.rb\\'"
  :interpreter "ruby")

その他の設定もかなりある。よさげ。

web-mode.el

ここまでやるならwebstormとかVS使ってもいいと思うんだよなぁ・・・ ←

yasnippet.el

スニペット導入のプラグインですね。Emacsはいまんとこ文章が主なのでそこまで使ってないけれど、本格的に導入してみますかね。

おしまい

最初はメモ程度だったのだけれど、せっかくながらとBlogに。自分でも後で見やすいしね。