scala-mode2のインストールと設定

はじめに

scala-modeのインストールを書きましたが,Emacs24専用のモードscala-mode2があったので

今回はこれをインストールしてみます.

環境とバージョン

  • OS:Debian Wheezy amd64
  • Emacs:emacs-snapshot_20130317-1_amd64

インストール

git clone git://github.com/hvesalai/scala-mode2.git

設定

.emacsに以下の設定を追加してください.

(add-to-list 'load-path "/path/to/scala-mode2/")
(require 'scala-mode2)

改行とインデント,行連結,バックタブ

(add-hook 'scala-mode-hook '(lambda ()

  ;; Bind the 'newline-and-indent' command to RET (aka 'enter'). This
  ;; is normally also available as C-j. The 'newline-and-indent'
  ;; command has the following functionality: 1) it removes trailing
  ;; whitespace from the current line, 2) it create a new line, and 3)
  ;; indents it.  An alternative is the
  ;; 'reindent-then-newline-and-indent' command.
  (local-set-key (kbd "RET") 'newline-and-indent)

  ;; Alternatively, bind the 'newline-and-indent' command and
  ;; 'scala-indent:insert-asterisk-on-multiline-comment' to RET in
  ;; order to get indentation and asterisk-insertion within multi-line
  ;; comments.
  ;; (local-set-key (kbd "RET") '(lambda ()
  ;;   (interactive)
  ;;   (newline-and-indent)
  ;;   (scala-indent:insert-asterisk-on-multiline-comment)))

  ;; Bind the 'join-line' command to C-M-j. This command is normally
  ;; bound to M-^ which is hard to access, especially on some European
  ;; keyboards. The 'join-line' command has the effect or joining the
  ;; current line with the previous while fixing whitespace at the
  ;; joint.
  (local-set-key (kbd "C-M-j") 'join-line)

  ;; Bind the backtab (shift tab) to
  ;; 'scala-indent:indent-with-reluctant-strategy command. This is usefull
  ;; when using the 'eager' mode by default and you want to "outdent" a
  ;; code line as a new statement.
  (local-set-key (kbd "<backtab>") 'scala-indent:indent-with-reluctant-strategy)

  ;; and other bindings here
))

ホワイトスペース

不適当なホワイトスペースをハイライトし,

保存時に不要なホワイトスペースを削除する設定.

(add-hook 'scala-mode-hook '(lambda ()
  (require 'whitespace)

  ;; clean-up whitespace at save
  (make-local-variable 'before-save-hook)
  (add-hook 'before-save-hook 'whitespace-cleanup)

  ;; turn on highlight. To configure what is highlighted, customize
  ;; the *whitespace-style* variable. A sane set of things to
  ;; highlight is: face, tabs, trailing
  (whitespace-mode)
))

scala-modeのインストール

環境とバージョン

  • OS:Debian Wheezy amd64
  • Emacs:emacs-snapshot_20130304-1_amd64
  • scala-mode:0.5.99.5

ダウンロード

git clone https://github.com/scala/scala-dist.git

できたディレクトリ’scala-dist/tool-support/src/emacs’

以下のファイルすべてをロードパスの通っているディレクトリ

に置きます.

設定

初期設定ファイル(.emacs等)に以下のようなコードを書きます.

ここではscalaモードでyasnippetsを使えるように’yasnippet/snippets/scala-mode’を

scala snippetsのディレクトリとして指定しています.

(require 'scala-mode-auto)

(setq yas/scala-directory "LOAD-PATH/yasnippet/snippets/scala-mode")
(yas/load-directory yas/scala-directory)

(add-hook 'scala-mode-hook
          '(lambda ()
             (yas/minor-mode-on)
             ))

統計プログラミングおよびデータ分析用Emacs モードESS (“Emacs Speaks Statistics”)をインストールする

環境とバージョン

OS:Debian Wheezy amd64

Emacs:emacs-snapshot_20130304-1_amd64

ess:ess_12.04-4-1_all

インストール

Debianのパッケージをインストールします.

apt-get install ess

設定

初期設定ファイル(.emacs等)に以下のようなコードを書きます.

(require 'ess-site)

nrepl-ritz.elをインストールする

はじめに

前回の記事でnrepl.elをインストールしたので,

ついでにnrepl-ritz.elもインストールします.

環境とバージョン

OS:Debian Wheezy amd64

Emacs:emacs-snapshot_20130304-1_amd64

nrepl:0.1.7

nrepl-ritz:0.7.1

ダウンロード

git clone https://github.com/pallet/ritz.git

設定

ダウンロードしたnrepl-ritz.elをロードパスの通ったディレクトリに置きます.

初期設定ファイル(.emacs等)に以下のようなコードを書きます.

(add-hook 'nrepl-interaction-mode-hook 'my-nrepl-mode-setup)
(defun my-nrepl-mode-setup ()
  (require 'nrepl-ritz))

nrepl.elをインストールする

前提条件

nrepl.elはclojure-mode.elに依存しているので

clojure-mode.elのインストールと設定はできている

必要があります.

環境とバージョン

OS:Debian Wheezy amd64

Emacs:emacs-snapshot_20130304-1_amd64

nrepl:0.1.7

ダウンロード

git clone https://github.com/kingtim/nrepl.el.git

設定

ダウンロードしたnrepl.elをロードパスの通ったディレクトリに置きます.

初期設定ファイル(.emacs等)に以下のようなコードを書きます.

(require 'nrepl)

参考リンク

バッファメニュー 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”)))

英辞郎をSDICで使う

はじめに

SDICのインストール,設定は以前書いた記事を参照してください.

Emacs上で英和和英辞書を引くためのソフトSDICをインストール・設定する

英辞郎の購入

ダウンロードする

上記のサイトからリンクをクリックし,購入しておいてください.

解凍

ダウンロードした英辞郎の圧縮ファイルを解凍します.

コマンド

unzip EDP-135.zip

ファイル名はおそらく英辞郎のバージョンにより異なるでしょう.

私がダウンロードしたのはVer.135(2012年9月5日版)です.

sdic-eijiro

英辞郎のファイルを変換するsdic-eijiroをインストールします.

コマンド

apt-get install sdic-eijiro

ディレクトリ

英辞郎の辞書ファイルのあるディレクトリを指定します.

手動で和英辞書を作る

Building /usr/share/dict/eijiro.sdic (from /home/onoben/tmp/EIJIRO/RYAKU135.TXT) … done.
Building /usr/share/dict/waeijiro.sdic …

インストール後辞書変換処理の途中,この状態で 止まってしまったので,手動でwaeijiro.sdicファイルを作成しました.

コマンド

nkf -S -e WAEI-135.TXT | perl /usr/share/sdic/eijiro.pl –waei > /tmp/waeijiro.sdic
mv /tmp/waeijiro.sdic /usr/share/dict/waeijiro.sdic

参考ドキュメント

‘/usr/share/sdic/eijiro.pl’のコメント

Emacs上で英和和英辞書を引くためのソフトSDICをインストール・設定する

はじめに

SDICはEmacs上で英和・和英辞書を引くためのソフトウェアです.

Emacs interface for Japanese dictionaries
This package provides an Emacs-Lisp viewer for English-Japanese
and Japanese-English dictionaries.

辞書データとしてフリーな英和辞書GENE95,和英辞書EDICTを使います.

これらの辞書を導入するパッケージも一緒にインストールします.

環境とバージョン

  • OS:Debian Wheezy amd64
  • Emacs:emacs-snapshot_20121122-1_amd64
  • sdic-edict:sdic-edict_2.1.3-22_all
  • sdic-gene95:sdic-gene95_2.1.3-22_all

インストール

コマンド

apt-get install sdic sdic-edict sdic-gene95

パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
以下の特別パッケージがインストールされます:
edict
提案パッケージ:
sdic-eijiro kakasi
推奨パッケージ:
sufary
以下のパッケージが新たにインストールされます:
edict sdic sdic-edict sdic-gene95
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 7 個。
4,697 kB のアーカイブを取得する必要があります。
この操作後に追加で 14.1 MB のディスク容量が消費されます。
続行しますか [Y/n]?

そのまま,[Y]と答えてください.

設定

.emacsファイルに以下のコードを記述します.

(global-set-key “\C-cw” ‘sdic-describe-word)
(global-set-key “\C-cW” ‘sdic-describe-word-at-point)

使い方

まず,”M-x sdic”または”\C-cw”と入力します.

ミニバッファにInput Word:とプロンプトが表示されます.

ここに何か単語を入力します.そうすると検索結果が返ってきます.

次に,意味がわからない単語にカーソルを合せて,

“C-cW”と叩くと,すぐ結果が別ウィンドウで表示されます.

キーバインド

key binding 説明
ESC Prefix Command プレフィックスキー
SPC scroll-up 前方へスクロールする
< sdic-goto-point-min 先頭へ移動する
> sdic-goto-point-max 終端へ移動する
? describe-mode モード説明
Q sdic-exit SDICを終了する
b scroll-down 後方へスクロールする
h backward-char カーソルを後方へ移動
j next-line 次の行へ移動
k previous-line 前の行へ移動
l forward-char カーソルを前方へ移動
n sdic-forward-item 次の項目へ移動
o sdic-other-window 他のウィンドウへ移動
p sdic-backward-item 前の項目へ移動
q sdic-close-window SDICのウィンドウを閉じる
w sdic-describe-word 新たな単語を検索
DEL scroll-down 後方へスクロールする
<backspace> scroll-down 後方へスクロールする
<delete> scroll-down 後方へスクロールする
C-M-i sdic-backward-item 前の項目へ移動

Emacsの Auto-Revert Modeをオンにしてみた

gitで頻繁にブランチを切り替えて開発するようになったので

設定してみました..emacsに以下のコードを追加するだけです.

CPU占有率が上ったとか,バッテリーの持ちが悪くなったとか

書かれているブログがありますが,今のところ問題はありません.

(global-auto-revert-mode 1)

eshell(Emacs Shell)にコマンドサーチパスを追加する

いろいろなブログを見てまわったところ,’eshell-path-env’にパスを 追加するだけではだめで.

‘PATH’にも追加する必要がありました.

eshell-path-env and PATH — Gist にあるコードを.emacsファイル に追加することにより

うまく動くようになりました.

(defun eshell-mode-hook-func ()
(setq eshell-path-env (concat “/usr/local/bin:” eshell-path-env))
(setenv “PATH” (concat “/usr/local/bin:” (getenv “PATH”)))

(add-hook ‘eshell-mode-hook ‘eshell-mode-hook-func)

参考URL

eshell-path-env and PATH — Gist

changing the path on the emacs eshell « Ben Atkin

w32.jp Weblog: eshellにコマンドサーチパスを追加する

w32.jp Weblog: Emacs(eshell)に環境変数PATHを追加する