elisp

GoogleSummerOfCode 2013にGuile-Emacs,Emacsyが選ばれる

旧聞ですが,GoogleSummerOfCode 2013にGuile-EmacsとEmacsyが選ばれました.

Guile-Emacsとは,ElispインタプリタをGuileのElispインタプリタで

置き換えるプロジェクトです.

EmacsyはEmacs/Guileのもう一つのアプローチです.

詳しくは,

Guile-Emacs

Emacsy, An Embeddable Emacs-like Library for GNU Guile Scheme

Guile – ニュース: GSoC: Guile-Emacs and Emacsy Savannah

バッファメニュー on Emacs24

Ibufferとは

IbufferはBufferMenuにかわるDiredと同じようにバッファを操作できる モードです. Ibufferにはハイライトしたりさまざまなレイアウトにする機能があります. Emacs24の一部です.

.emacsの設定

(global-set-key (kbd “C-x C-b”) ‘ibuffer)
(autoload ‘ibuffer “ibuffer” “List buffers.” t)

アスタリスクで始まるバッファを隠す

私は設定していませんが,アスタリスクで始まるバッファを隠すことができます.

(require ‘ibuf-ext)
(add-to-list ‘ibuffer-never-show-predicates “^\\*”)

フィルターグループの設定

フィルターの設定をすることで,バッファをグループ化できます.

(setq ibuffer-saved-filter-groups
‘((“home”
(“emacs-config” (or (filename . “.emacs.d”)
(filename . “emacs-config”)))
(“tsutomuonoda.com” (filename . “tsutomuonoda”))
(“Org” (or (mode . org-mode)
(filename . “OrgMode”)))
(“Mail”
(or
(mode . wl-folder-mode)
(mode . wl-summary-mode)
(mode . wl-draft-mode)
(mode . mew-summary-mode)
(mode . mew-draft-mode)
))
(“R” (or
(mode . ess-mode)
(filename . “EssMode”)))
(“LaTeX”
(or
(mode . latex-mode)
(filename . “LaTeXMode”)))
(“Text” (name . “.txt”))
(“Programming”
(or
(mode . c-mode)
(mode . perl-mode)
(mode . python-mode)
(mode . emacs-lisp-mode)
;; etc
))
(“Web Dev” (or (mode . html-mode)
(mode . css-mode)))
(“Dired” (mode . dired-mode))
(“Egg” (name . “\*Egg”))
(“Help” (or (name . “\*Help\*”)
(name . “\*Apropos\*”)
(name . “\*info\*”))))))

その他の有益なオプション

空のフィルターグループを隠す

(setq ibuffer-show-empty-filter-groups nil)

自動でバッファリストをアップデートする

これは,フックの中に入れています.

(ibuffer-auto-mode 1)

フック

(add-hook ‘ibuffer-mode-hook
‘(lambda ()
(ibuffer-auto-mode 1)
(ibuffer-switch-to-saved-filter-groups “home”)))

[Emacs]Emacs24.1にDDSKK14.4をインストールする

はじめに

Emacs24.1の新機能であるpackageシステムについて調べようと 思っていましたが,まだ利用できるパッケージ数が少なくインストール したいパッケージもなかったので,Emacs24.1の環境構築について 書いていこうと思います.最初は日本語入力システムのDDSKKから.

インストール

SKK Openlab – DDSKK よりddskk-14.4.tar.gzをダウンロードしてください. 適当な所で展開します.

$ cd ddskk-14.4
$ make what-where EMACS=/usr/local/bin/emacs-24.1
$ sudo make install EMACS=/usr/local/bin/emacs-24.1

/usr/local/share/emacs/24.1/site-lisp/skkにインストールされます.

ロードパスの設定

/usr/local/share/emacs/24.1/site-lisp/はロードパスに含まれているので .emacsで設定は不要です.

.emacsの設定

(require ‘skk-autoloads)
(global-set-key “\C-x\C-j” ‘skk-mode)
(global-set-key “\C-xj” ‘skk-auto-fill-mode)
(global-set-key “\C-xt” ‘skk-tutorial)

;; SKK を起動していなくても、いつでも skk-isearch を使う
(add-hook ‘isearch-mode-hook ‘skk-isearch-mode-setup)
(add-hook ‘isearch-mode-end-hook ‘skk-isearch-mode-cleanup)

;; Org mode のときだけ句読点を変更したい
(add-hook ‘org-mode-hook
(lambda ()
(require ‘skk)
(setq skk-kutouten-type ‘en)))

;; 文章系のバッファを開いた時には自動的に英数モード(「SKK」モード)に入る
(let ((function #'(lambda ()
(require ‘skk)
(skk-latin-mode-on))))
(dolist (hook ‘(find-file-hooks
;; …
mail-setup-hook
message-setup-hook
wl-draft-mode-hook))
(add-hook hook function)))

.skkの設定

整理されていないので後日追加する.

[JAVA][Emacs]malabar-modeのインストール

環境

OS:ubuntu12.04LTS openjdk-7-jdkインストール済み CEDET(Emacsのバージョンが23.3.1なので同梱済み)

Mavenのインストール

malabar-modeのインストールに必要なのでdebパッケージで入れる.

$ sudo apt-get install maven

2012年6月12日時点で,バージョン3.0.4がインストールされる.

malabar-modeのインストール

malabar-modeはGitを使って取得します.

git clone git://github.com/espenhw/malabar-mode.git

pom.xmlにmavenのバージョンが書いてある所があるのでそこを 3.0.4に変える.

<maven.version>3.0-SNAPSHOT</maven.version>
→ <maven.version>3.0.4</maven.version>

ビルド後のテストに失敗するのでテストをしないようにオプションで指定する.

$ mvn -Dmaven.test.skip=true package

ビルド終了後,targetディレクトリにmalabar-<version>-dist.zipファイルができているので これを適当な所に展開する.

できたmalabar-<version>/lispディレクトリにロードパスを通す.

.emacsに以下を追加./path/to/malabar/libは適切なディレクトリを指定する.

(require ‘cedet)
; (semantic-load-enable-minimum-features) ;; or enable more if you wish
(require ‘malabar-mode)
(setq malabar-groovy-lib-dir “/path/to/malabar/lib”)
(add-to-list ‘auto-mode-alist ‘(“\\.java\\'” . malabar-mode))

(semantic-load-enable-minimum-features)は有効にしているとエラーが出たのでコメントアウトしておいた. これは調査中.

[Emacs]anything.elのフォークhelm-modeをインストールする

インストール

(1)GitHubのリポジトリから取ってきます.ロードパスを通すディレクトリは任意です.

$ git clone https://github.com/emacs-helm/helm.git /path/to/helm/directory

(2)~/.emacs.d/init.elに以下の内容を書きます.

(add-to-list ‘load-path “/path/to/helm/directory”)

(require ‘helm-config)

基本的な使い方

(1)M-x helm-miniで起動するか,~/.emacs.d/init.elに以下の内容を記述します.

(global-set-key (kbd “C-c h”) ‘helm-mini)

この設定によりミニバッファにpatternを入力するように求めらます.helm mini バッファにマッチするバッファ,最近開いたファイル,バッファ作成などの選択肢が表示されてC-n/C-pで選択し,Returnで決定するとそのアクションが実行されます.

(2)helmにコマンド補完させたい場合は,M-x helm-modeとするか,~/.emacs.d/init.el に以下の内容を記述します.

(helm-mode 1)

この設定により例えば,DiredモードでC-x C-fとするとhelm-mode-find-fileという バッファが表示されてC-n/C-pで選択し,Returnで決定するとそのファイルが開けます.

高度な使い方

・Wiki

Home · emacs-helm/helm Wiki · GitHub

を参照してください.

雑感

今回はREADMEの内容をまとめただけですが,これだけでもかなり使えるでしょう. 次回からはWikiを参照しながらカスタマイズをしていこうと思います.

参考URL

・公式サイト

emacs-helm/helm · GitHub

[LaTeX][Emacs]YaTeXのインストールと設定

インストール

Debianなのでaptでインストールします.

# apt-get install yatex

PATH設定

Emacはメニューから起動すると環境変数PATHを引き継がないので以下の ように.emacsにPATHを追加する設定をしました.

;; PATHの設定

;; より下に記述した物が PATH の先頭に追加されます

(dolist (dir (list

“/bin”

“/usr/bin”

“/usr/local/bin”

(expand-file-name “~/bin”)

(expand-file-name “~/.rvm/bin”)

“/usr/local/texlive/2011/bin/i386-linux” ))

;; PATH と exec-path に同じ物を追加します

(when (and (file-exists-p dir) (not (member dir exec-path)))

(setenv “PATH” (concat dir “:” (getenv “PATH”)))

(setq exec-path (append (list dir) exec-path))))

YaTeXの設定

.emacsに設定した内容な以下のとうりです.

(setq YaTeX-default-documentclass “jsarticle”

tex-command “platex -kanji=utf8”

dvi2-command “pxdvi -geo +0+0 -s 4”

makeindex-command “mendex -E”

dviprint-command-format “dvipdfmx -v -p a4 %s”

YaTeX-template-file “/home/hogehoge/skel/template.tex”

YaTeX-kanji-code 4 ; utf-8 )

;; YaTeX hook (add-hook ‘yatex-mode-hook

(lambda () (require ‘skk)

(setq skk-kutouten-type ‘en);;YaTeX のときだけ句読点を変更する。

(auto-fill-mode -1);;オートフィルをoffにする。

))

参考文献・URL

[Emacs]GitインターフェースEggをインストールする

はじめに

Emacsからgitを扱いたかったのでそのEmacsインターフェースであるEggをインストールします.Eggのオリジナルは開発が止まっているみたいなので forkした方を入れます.

インストール

git clone git://github.com/byplayer/egg.git

で最新版を取得します.

Emacsファイルをロードパスの通ったところにコピーします.

.emacsに

(require ‘egg)

を追加します.

ドキュメント

Home · bogolisk/egg Wiki · GitHub

Manual · bogolisk/egg Wiki · GitHub

Bogosities

オリジナルの方のドキュメント.少し古いですがキーバイディング表やスクリーンショット などがありまだまだ使えます.

EmacsWiki: Git

他のGitインターフェースに興味のある方はこちら.

[Emacs]xml-rpc.elをインストールする

1 はじめに

org2blogがxml-rpc.elを要求していたので
xml-rpc.elのサイトから最新版1.6.8をダウンロードし,
インストールしました.

2 インストール

xml-rpc-el in Launchpad

上記サイトからファイルをダウンロードし,
ロードパスの通っているところに置きます.

3 設定

.emacsに

(require ‘xml-rpc)

と書けばO.K.

[Emacs]Org-modeの最新版をインストールする

1 はじめに

org2blogがorg-modeのバージョン7以上を要求していたので
org-modeのサイトから最新版の7.8.06をダウンロードし,
インストールしました.

2 インストール

Org-Mode: ダウンロードとインストール

上記サイトからzipまたはtarファイルをダウンロードし,
ロードパスの通っているところに置きます.

.emacsファイルには

(setq load-path (cons “~/path/to/orgdir/lisp” load-path))
(setq load-path (cons “~/path/to/orgdir/contrib/lisp” load-path))

のように書きます.

3 設定

(add-to-list ‘auto-mode-alist ‘(“\\.org\\'” . org-mode))
(add-hook ‘org-mode-hook ‘turn-on-font-lock) ; not needed when global-font-lock-mode is on
(global-set-key “\C-cl” ‘org-store-link)
(global-set-key “\C-ca” ‘org-agenda)
(global-set-key “\C-cb” ‘org-iswitchb)

これで,org-modeが最新版になりました.
マニュアルどうりですね.

[Emacs]org2blogのインストール

はじめに

EmacsからWordPressで作ったブログに記事を投稿したかったのでorg2blogをインストールします.必要なorg-modeやxml-rpc.el はインストールされているものとします.

インストール

コマンドラインから

git clone http://github.com/punchagan/org2blog.git

.emacsに

(setq load-path (cons “~/.emacs.d/org2blog/” load-path))

(require ‘org2blog-autoloads)

と書きます.

設定

.emacsに

(setq org2blog/wp-blog-alist

‘((“wordpress” :url “http://username.wordpress.com/xmlrpc.php”

:username “username”

:default-title “Hello World”

:default-categories (“org2blog” “emacs”)

:tags-as-categories nil)

(“my-blog” :url “http://username.server.com/xmlrpc.php”

:username “admin”)))

のように設定を書きます.

雑感

まだインストールしたばかりなのでドラフトとして投稿しています. 追々カスタマイズしていく予定です.