2007年9月29日土曜日

キーバインディングを変えてみた

HHK左◇ダイアモンドキーMETAキーに。
左AltキーSuperキーに。

METAキーはEmacs使っていると多用するので、なるべく押下しやすいスペースバーの隣に。
Altキーはあまり使わないし、右Altキーもあるしで、Superキーに変えてみました。
Berylのキーボードショートカットを見るとやたらとSuperキーが出てきたので。今までAlt+Tabでタスク切り替えしてたのですが、Super+Tabでタスク切り替えしたら、なんか、リング上に回転して切り替えがw

以下メモ。

まず、xevコマンドでで左◇キーと左Altキーのキーコードを取得。
それぞれ、13164と分かったので、~/.Xmodmapに記述。
clear mod1
keycode 129 = Zenkaku_Hankaku Kanji
keycode 131 = Meta_L
keycode 64 = Super_L
add mod1 = Meta_L Alt_L
あとは、
xmodmap ~/.Xmodmap
として再読み込み。無事変更完了。

ああ、どんどん深みにハマっていく気が・・・orz
ところでWindowsのWinキーってlinuxだと何キーになるんでしょうかね? Superキー?

参照

2007年9月28日金曜日

Emacsで行の折り返し表示をON/OFFする

通常は一行が長すぎると右側で折り返され、画面に収まって表示されます.
ですが/etc/fstab ファイルとか、syslogファイルなど、一行1レコードのようなファイルを編集する場合、折り返し表示されるとかえって見にくくなります.

ということで~/.emacsに以下を追記します.

;;====================================
;;; 折り返し表示ON/OFF
;;====================================
(defun toggle-truncate-lines ()
"折り返し表示をトグル動作します."
(interactive)
(if truncate-lines
(setq truncate-lines nil)
(setq truncate-lines t))
(recenter))

(global-set-key "\C-c\C-l" 'toggle-truncate-lines) ; 折り返し表示ON/OFF
これで、C-c C-l とするだけで、折り返しするしないをトグル動作する事が出来ます。

2007年9月27日木曜日

Emacsで色いろいろなの

小ネタ。
たとえば、HTMLを編集していてちょと色を変えたいとき、色の16進表記が分からない、とか、Emacsの色が気に入らないのでカスタマイズしたいが、あの色の名前なんだっけ? とかの時に役立つ〜
M-x list-colors-display
で色見本が表示されます。
 Emacs23だと同時に16進表記も出ます。



 他に、color-selection.elというelispもあり、こちらは色名は出ませんが、emacs21でも16進で表示され、リターンキーで選択した色を張り付けることが出来ます。ただ、jaspace.elと相性が悪く、jaspace.elが有効になっていると色が表示されませんでした。

2007年9月26日水曜日

Emacsで見たままの状態をHTMLに変換する

以前に「"」とか、「<」とかのメタ文字をエスケープするだけのモノを作ったんですが、もっと便利な物があったんですね。知らなかったorz

ということで、emacsでfont-lockでコードなんかを色付けして表示している場合、その体裁ごとHTMLに変換してくれるelisp.

htmlize.el


 emacsの強調表示や色付けされた見たままの状態をCSS付きでHTMLに変換してくれます。
 変換は、選択された範囲や、Buffer全体、ファイルから行えます。
 ですがHTMLで変換されるので、部分引用したいときは不便を感じる。

face2html


 同じく見たままをHTMLに変換してくれる。<pre>で囲んだHTMLを吐き出してくれます。
 コードなんかをポトペタと張り付ける時にはこちらの方がいい感じです。


便利だね。Emacs♪

2007年9月25日火曜日

Emacs23でmewがうごかない

小ネタ。
emacsで動くメールソフトのmewが All members of mew-thread-indent-strings must have the same length なメッセージを出して動かない。
~/.emacs に以下を追記することで動いた。

(if (>= emacs-major-version 23)
(setq mew-thread-indent-strings ["+" "+" "|" " "]))
スレッド表示の時のインデントを表す記号文字の設定みたいだけど、なんだろうね。文字コードのせいなのかな。

2007年9月24日月曜日

バックアップ時のキャッシュディレクトリの挙動について

 バックアップする時に悩むのが Cache ディレクトリの取扱い。homeディレクトリを丸ごとバックアップしたいときなんて、例えば、firefoxのキャッシュフォルダや、各種画像のサムネイル、テンポラリフォルダなどなど。
 Dar で、~/.darrc に除外したいディレクトリを逐一指定しておくのもいいけれど、 Cache Directory Tagging Standard という仕組みを使えば簡単にキャッシュディレクトリを除外できる。

仕組みは簡単で、キャッシュディレクトリだと認識するディレクトリの中に、CACHEDIR.TAGというファイルを作り、ファイルの中身を、
Signature: 8a477f597d28d172789f06886806bc55
# This file is a cache directory tag created by (application name).
# For information about cache directory tags, see:
# http://www.brynosaurus.com/cachedir/
と書いておけばいい。最初の一行だけで事足りるだろうけど。ようするにキャッシュディレクトリにタグ付けをしておくということですね。

あとは例えばDarならバックアップのさいに、 -, オプションを付ければ CACHEDIR.TAG のあるディレクトリは除外してバックアップしてくれる。
ほかにもtar cpiorsync なども対応しているので、ガンガン利用していきましょう。

いやぁ、linuxってかゆいところに手が届く的な便利さがありますね♪

以下、作業メモ。
find ~/ -iname cache -print | wc
で23個ものcacheディレクトリがあったので、
#!/usr/bin/ruby
#
#

name= "set_cachetag.rb"
tt1 = "Signature: 8a477f597d28d172789f06886806bc55\n" +
"# This file is a cache directory tag created by "
tt2 = "# For information about cache directory tags, see:\n" +
"# http://www.brynosaurus.com/cachedir/ \n"
tagtext = tt1 + name + "\n" + tt2

while gets
if File.directory?($_.chop) then
cpath = $_.chop + "/CACHEDIR.TAG"
unless File.exist?(cpath) then
print $_
tag = File.new(cpath , "w")
tag << tagtext
tag.close
end
end
end
とrubyスクリプトを書いて、
find ~/ -iname cache | ruby set_cachetag.rb
としていっきに CACHEDIR.TAG ファイルを生成した。楽だ♪

2007年9月23日日曜日

Emacsでタイピング練習

plog さんのところで昔懐かしい TRR の話題があったので、試しに入れてみました。
リポジトリに入っているのは trr19 で、emacs22以降で動きません。trr19を修正したtrr21というのがあったので導入してみました。

以下導入メモ

wget http://ftp.opaopa.org/pub/elisp/trr21.tar.gz
tar zxvf trr21.tar.gz
cd trr21/
エディタでMakefileを編集し、sedとgrepのパスを修正。
# Name of your sed
#SED = /usr/bin/sed
SED = /bin/sed

# Name of your grep
#GREP = /usr/bin/grep
GREP = /bin/grep
make all したら poe がないと言われたので、力業で作業ディレクトリにコピー^^;
cp /usr/share/emacs/site-lisp/apel/poe.el .
cp /usr/share/emacs/site-lisp/apel/product.el .
cp /usr/share/emacs/site-lisp/apel/pym.el .
cp /usr/share/emacs/site-lisp/apel/apel-ver.el .
cp /usr/share/emacs/site-lisp/apel/static.el .
make all

無事make成功。そのままインストール。
sudo make install
~/.emacs に以下を追記。
(autoload 'trr "/usr/local/share/emacs/site-lisp/trr" nil t)
emacsを立ち上げて、M-x trr で無事emacs23で起動成功。


参照

2007年9月22日土曜日

Emacsのとりあえず最低限の環境を整える





 ubuntuでemacsを使用するにさいして、最低限の環境を構築します。

 たまに、emacsはデフォルトの設定が最低だという人がいますが、あたりまえでしょう。別にemacsはlinuxのためのエディタというわけではありませんし、WindowsやMacでもUNIXのためのエディタというわけでもありません。
EmacsはEmacsです
 初期のEmacsが動いたマシンにはカーソルキーがありませんでした。ですからカーソルの移動はCtrl + P,N,B,Fでした。最近のキーボードではカーソルキーが付いているのは当たり前になっていますが、私のキーボードにはファンクションキーもカーソルキーもありません・・・べ、別に不便じゃないんだからっ

 と、ともかく、Emacsはおそらく世界でもっとも多くのプットフォームに移植されたプログラムでしょう。そのEmacsがすべてのプラットフォーム用の設定を同梱するのは無意味ですし非合理的です。そんな作業はディストリビュータのお仕事でしょう。例えばvineでは最初からかなりカスタマイズされたEmacsが用意されているらしいです。ubuntuでは最適な初期設定は人によって違うからということで素のままのEmacsが用意されています。
 ですがさすがに日本語設定もされていないのは不便と感じたのかubuntu-jaチームが日本語設定導入パッケージを用意してくれています。

 とはいえEmacs+日本語環境、だけではあまりにもそっけなく、ぶっちゃけ使いにくいものです。そこで、とりあえず最低限、何が最低限必要なのかは置いておくとして、それなりに便利な環境構築をまずはやってみましょう。


 はじめに、
各種設定は、~/.emacsファイルに書いていきます。また、elispファイルは~/.lisp/ディレクトリにに入れることを前途に説明していきます。あらかじめ~/.emacs ファイルの先頭付近に、
;===================================
;; load path
;===================================
(setq load-path (cons "~/.lisp/" load-path))
として、~/.lisp/へのパスを設定しておいてください。~/.lisp/以外に格納したい場合は読み替えてください。

日本語環境


 日本語環境は、
sudo apt-get install emacs-env-ja
すれば日本語環境は一通り揃えてくれるはずです。試していないので分かりませんが。
一応参考程度に私が使っている日本語まわりの設定を貼り付けておきます。

 日本語入力

;===================================
; Language
;===================================
(if (string-match "^21\." emacs-version)
(require 'un-define))
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8-unix)
;(set-buffer-file-coding-system 'utf-8)
(setq file-name-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
;(set-clipboard-coding-system 'utf-8)

;===================================
; Anthy
; CTRL-\で入力モード切替え
;===================================
(load-library "anthy")
(setq default-input-method "japanese-anthy")
(setq anthy-accept-timeout 1) ;;emacs23用。ディレイ短縮。動作を機敏に。
;ローマ字変換外部テーブル読み込み。
;(if (file-exists-p (expand-file-name "~/.emacs.anthy"))
; (load (expand-file-name "~/.emacs.anthy") nil t nil))


 日本語フォント

;===================================
; font
;===================================
; emacs23 用設定
(cond ( (string-match "^23\." emacs-version)
(cond (window-system
(set-default-font "Bitstream Vera Sans Mono-15")
(set-fontset-font (frame-parameter nil 'font)
'japanese-jisx0208
; '("IPAゴシック" . "unicode-bmp"))
'("IPAGothic" . "unicode-bmp"))
; '("Yutapon coding Heavy" . "unicode-bmp"))
; '("Hiragino Gothic" . "unicode-bmp"))
))))

; emacs21 用設定
(cond ((string-match "^21\." emacs-version)
(cond (window-system
(create-fontset-from-fontset-spec
"-shinonome-gothic-medium-r-normal--18-*-*-*-*-*-fontset-18")
(set-default-font "fontset-18")))))


最近開いたファイル、を出来るようにする




バッファ一切り替えを使いやすくする



バッファ一覧をまともなものに

 デフォルトのバッファ一覧は、ほんとにタダ一覧表示するだけなので使いにくいだけです。これを変えましょう。
~/.emacsに以下を追記。
(global-set-key "\C-x\C-b" 'bs-show) ;;bs-showでバッファ選択する。


ミニバッファを使いやすくする



Shift + 矢印キーで範囲選択できるようにする

~/.emacsに以下を追記.
(pc-selection-mode) ;;shift+矢印キーでの範囲選択


選択範囲に色を付けて見た目わかりやすくする

~/.emacsに以下を追記.
(transient-mark-mode 1) ;;選択範囲に色を付ける


ファイルを開くとき、前回開いた位置を記憶して復元する



複数のフレームを開いた状態を記憶しておき、いつでも復元できるようにする



全角・タブ文字を見えるようにする



行番号を表示させる


 これも定番です。なくてもあまり問題ないですけどね。私は使わなくなりました。
 setnu.elを使います。
こちらから落としてきて~/.lisp/当たりに放り込み、~/.emacsに以下を追記します。
 F12キーを押すことで行番号表示がトグル動作します。
;;====================================
;;行番号表示モード
;====================================
(autoload 'setnu-mode "setnu" nil t)
(global-set-key [f12] 'setnu-mode)


自分に使いやすいように色を変える



色分けをする

 色分けがないとね。emacs22以降からはデフォルトでONになっているようです。
~/.emacsに以下を追記。
(global-font-lock-mode t) ; 文字の色つけ


行間を設定する

~/.emacsに以下を追記。
;====================================
; 行間設定
;====================================
;;整数で指定するとピクセル数で、少数で指定すると
;;行の高さに対して相対値で設定されます。
(setq-default line-spacing 0.1)
数値を変えて自分にあった行間を調整してみてください。

指定したサイズでemacsを開く




カーソル移動の挙動を変える


 論理行単位ではなく、物理行(見たまま)単位で移動出来るようにします。
 physical-line.elを使います。標準ではないので、こちらから落としてきて~/.lisp/にでも放り込んでおきます。

;====================================
; カーソル移動設定
;====================================
;カーソル移動を論理行ではなく、物理行(見たまま)単位で移動する。
(require 'physical-line)
(setq-default physical-line-mode t)
;; dired-mode は論理行移動のままにする.
(setq physical-line-ignoring-mode-list '(dired-mode))


スクロール行数を変える

 デフォルトは半ページごとにスクロールです。これを4行ずつスクロールするようにします。1行毎だとうちのPCでは能力不足で無理だったorz
~/.emacsに以下を追記。
;====================================
; スクロール設定
;====================================
(setq scroll-conservatively 35
scroll-margin 0
scroll-step 4) ;4行ずつスクロールする


その他

 それほど重要でもないもの、瑣末なものをいくつか。
~/.emacsに以下を追記します。
;====================================
; Misc
;====================================
(if (string-match "^21\." emacs-version)
(display-time)) ;;時計を表示
(if (string-match "^21\." emacs-version)
(setq line-number-mode t) ;;カーソルのある行番号を表示
(setq column-number-mode t) ;;桁番号を表示
(setq frame-title-format ;;フレームのタイトル指定
(concat "%b - emacs@" system-name))
(setq inhibit-startup-message t) ;;起動時のメッセージを消す
(set-scroll-bar-mode 'right) ;;スクロールバーを右側に
(show-paren-mode 1) ;; 対応する括弧を光らせる(グラフィック環境のみ作用)
(tool-bar-mode 0) ;;ツールバーを消す。
(menu-bar-mode 0) ;;メニューバーを消す
(auto-compression-mode t) ;;圧縮されたファイルも編集&日本語infoの文字化け防止
(fset 'yes-or-no-p 'y-or-n-p) ;;"yes or no"を"y or n"にする
(setq browse-url-browser-function 'browse-url-firefox) ;;デフォルトのブラウザ設定




げっぷ

 とりあえず、こんなものでどうでしょうか。私にとってはこれらすべてを設定してとりあえず最低限とします。
 ほんとはこの他にもキーバインドを色々いじくっていますがw
C-h はデフォルトではヘルプキーですが、バックスペースキーに切り替えたりとか。

2007年9月19日水曜日

Emacsのバッファ切り替えを使いやすく

 iswitchb を使います。ないと生きていけません。
 C-xb で切り替えたいバッファを入力して切り替えますが、これをインクリメンタル補完してくれます。
iswitchb は標準で入っていたはずですので、~/.emacsに以下を追記しておくだけで機能します。。


;;;====================================
;;;; Buffer 設定
;;;===================================
;;; iswitchb は、バッファ名の一部の文字を入力することで、
;;; 選択バッファの絞り込みを行う機能を実現します。
;;; バッファ名を先頭から入力する必要はなく、とても使いやすくなります。
(iswitchb-mode 1) ;;iswitchbモードON
;;; C-f, C-b, C-n, C-p で候補を切り替えることができるように。
(add-hook 'iswitchb-define-mode-map-hook
(lambda ()
(define-key iswitchb-mode-map "\C-n" 'iswitchb-next-match)
(define-key iswitchb-mode-map "\C-p" 'iswitchb-prev-match)
(define-key iswitchb-mode-map "\C-f" 'iswitchb-next-match)
(define-key iswitchb-mode-map "\C-b" 'iswitchb-prev-match)))
これで、バッファ切り替えの時に、バッファの名前の一部分だけを入力すれば、即座に候補が絞られて表示され、ストレスなく切り替えが可能に!

20080112追記

バッファ切り替えの時に候補に出したくない、不必要なバッファを除外することが出来ます。
~/.emacs に以下のように書いていきます。

;;; iswitchbで補完対象に含めないバッファ
(setq iswitchb-buffer-ignore
'(
"*twittering-wget-buffer*"
"*twittering-http-buffer*"
"*WoMan-Log*"
"*SKK annotation*"
"*Completions*"
))
これですっきりに。

2007年9月17日月曜日

Emacsのミニバッファを使いやすくする

 M-x 時のミニバッファでコマンドの補完を行います。ないと生きていけません。
端末での入力補完と同じく、M-x hogehoge と関数名の補完をしてくれます。
 mcomplete.elを使います。
さらに、補完候補をよく使う候補を優先して表示させるmcomplete-history.elも併用します。それぞれリンク先から落としてきて、~/.lisp/あたりに入れておきます。
(setq load-path (cons "~/.lisp/" load-path))
としてパスを通しておくのを忘れないようにしましょう。パスを通したら、 ~/.emacsに以下を追記します。
;====================================
; ミニバッファ設定
;===================================
;ミニバッファで M-x 時のインクリメンタル補完
(require 'mcomplete)
;さらによく使うヒストリを優先させる
(load "mcomplete-history")
(turn-on-mcomplete-mode)

;ファイルを開く時に,カーソルキーだけで,ファイルを選択
;カーソル上下で従来のヒストリ。ctrl+P,ctrl+nでファイル名補完
(require 'cycle-mini)
(define-key minibuffer-local-map [up] 'previous-history-element)
(define-key minibuffer-local-completion-map [up] 'previous-history-element)
(define-key minibuffer-local-must-match-map [up] 'previous-history-element)
(define-key minibuffer-local-ns-map [up] 'previous-history-element)
(define-key minibuffer-local-ns-map [down] 'next-history-element)
(define-key minibuffer-local-map [down] 'next-history-element)
(define-key minibuffer-local-completion-map [down] 'next-history-element)
(define-key minibuffer-local-must-match-map [down] 'next-history-element)
これでいちいち長ったらしい関数名を覚えなくても大丈夫♪

2007年9月15日土曜日

Emacsでファイルを開くとき、前回開いた位置を復元する

 ファイルを開くとき、前回作業していた位置から続きを再開したいですよね。
~/.emacsに以下を追記します。
;====================================
; セッション
;====================================
;Emacsを終了してもファイルを編集してた位置や
;minibuffer への入力内容を覚えててくれます。
(when (require 'session nil t)
(setq session-initialize '(de-saveplace session keys menus places)
session-globals-include '((kill-ring 50)
(session-file-alist 500 t)
(file-name-history 10000)))
;; これがないと file-name-history に500個保存する前に max-string に達する
(setq session-globals-max-string 100000000)
;; デフォルトでは30!
(setq history-length t)
(add-hook 'after-init-hook 'session-initialize))

2007年9月13日木曜日

Emacsで複数のウィンドウを開いた状態を記憶しておき、いつでも復元できるようにする

 例えば、Aとういう作業をしていて、そのAの作業が複数のウィンドウを開いてする作業で、それぞれのウィンドウは自分に使いやすい様に微妙なサイズで開かれている。そして、一旦Aの作業を中断して別のBという作業をしなければいけなくて、新規にBのためのウィンドウを開いて作業し、作業が終わって、Aの作業に戻るとき、いちいち複数開いていたウィンドウを開きなおし、サイズも一つ一つ微調整しなければならない。
 これははっきり言ってかなり面倒です。そこで、ウィンドウの状態を記憶させておき、その状態に素早く復帰できる機能があれば、複数のプロジェクトをスイッチを切り替えるがごとく素早く行ったり来たり出来ます。
 複数のウィンドウ状態を維持して作業している人には超お薦めです。

window.elを使います。標準で入っていると思いますが、入っていない場合は、
sudo apt-get install emacs-goodies-el
として導入し、~/.emacsに以下を追記します。
;;====================================
;;; 分割したウィンドウ状態を保存・復元する
;;===================================
;; デフォルトは C-c C-w
(require 'windows)
;; 新規にフレームを作らない
(setq win:use-frame nil)
(win:startup-with-window)
(define-key ctl-x-map "C" 'see-you-again)

使い方

 例.
 別のウィンドウを作りたいときは、C-c C-w 2 と押すと、下のエコー領域にスクリーンショットのようにメニューが出ますので、C を押します。

すると新たに新規ウィンドウが作成され、モード行の右側に [2] と表示されます。
 以前のウィンドウに戻りたいときは、C-c C-w 1 と押せば、以前のウィンドウ状態に復帰できます。

2007年9月9日日曜日

Emacsで全角空白、タブ、改行文字を表示させる

 定番ですね。
 二通りの方法があります。
  • まずは、font-lockをコチョコチョする場合

~/.emacsに以下を追記します。
;====================================
;;全角スペースとかに色を付ける
;====================================
(defface my-face-b-1 '((t (:background "medium aquamarine"))) nil)
(defface my-face-b-1 '((t (:background "dark turquoise"))) nil)
(defface my-face-b-2 '((t (:background "cyan"))) nil)
(defface my-face-b-2 '((t (:background "SeaGreen"))) nil)
(defface my-face-u-1 '((t (:foreground "SteelBlue" :underline t))) nil)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)
(defadvice font-lock-mode (before my-font-lock-mode ())
(font-lock-add-keywords
major-mode
'(
(" " 0 my-face-b-1 append)
("\t" 0 my-face-b-2 append)
("[ ]+$" 0 my-face-u-1 append)
)))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)
(add-hook 'find-file-hooks '(lambda ()
(if font-lock-mode
nil
(font-lock-mode t))))

  • jaspace.elを使う場合

こちらから落としてきて~/.lisp/当たりに放り込み、~/.emacsに以下を追記します。
;====================================
;;jaspace.el を使った全角空白、タブ、改行表示モード
;;切り替えは M-x jaspace-mode-on or -off
;====================================
(require 'jaspace)
;; 全角空白を表示させる。
(setq jaspace-alternate-jaspace-string "□")
;; 改行記号を表示させる。
(setq jaspace-alternate-eol-string "↓\n")
;; タブ記号を表示。
;;(setq jaspace-highlight-tabs t) ; highlight tabs

;; EXPERIMENTAL: On Emacs 21.3.50.1 (as of June 2004) or 22.0.5.1, a tab
;; character may also be shown as the alternate character if
;; font-lock-mode is enabled.
;; タブ記号を表示。
(setq jaspace-highlight-tabs ?&gt;) ; use ^ as a tab marker

2007年9月7日金曜日

Emacsを自分の使いやすいように色を変える

 前景色、背景色など、自分の好みに変えます。見た目は大事ですからね。
 color-theme.elを使います。いくつかのプリセットされたカラーテーマから選ぶので楽です。
 たしか標準で入っているはずです。入っていなかった場合は、
sudo apt-get install emacs-goodies-el
とするか、
sudo apt-get install emacs-color-themes
として入れておき、~/.emacs
;====================================
; color
;====================================
(require 'color-theme)

と書いておきます。

あとは M-x color-theme-select とすれば、テーマセレクト画面になりますので、自分の好みのテーマを試してみてください。
お気に入りのテーマが決まったら、~/.emacsに以下のように書いておきます。
(color-theme-dark-blue)

私はdark-blueというテーマを使用しています。

2007年9月5日水曜日

Emacsを指定したサイズで開く

Emacsを縦横指定したサイズで、指定した座標で開きます。

~/.emacsに以下を追記。
;====================================
;フレーム位置設定(ウィンドウ)
;====================================
(setq initial-frame-alist
(append
'((top . 22) ; フレームの Y 位置(ピクセル数)
(left . 45) ; フレームの X 位置(ピクセル数)
(width . 82) ; フレーム幅(文字数)
(height . 41) ; フレーム高(文字数)
) initial-frame-alist))

しかし、~/.Xresources に以下を記述したほうが起動は早い。
! emacsの初期サイズとウィンドウ位置
! width x height + top + left
emacs.geometry: 82x41+10+0

2007年9月3日月曜日

Emacsでアンチエイリアス

コメント欄でemacsのアンチエイリアスのことを聞かれたので、いまさらながら、Emacs23でアンチエイリアスの簡単な導入メモなどをば。
 現在feistyではemacs21が提供されており、先ごろ公開されたemacs22はubuntuの次のバージョンであるGutsyで正式に提供されるようです。Gutsyは10月18日にリリースされる予定です。
ですがemacs22でも日本語のアンチエイリアスはサポートされていません。
ubuntuで他のアプリは綺麗なフォント表示なのにEmacsだけは汚いビットマップフォントだとお嘆きの方はEmacs23を導入してみましょう。ただし、emacs23は開発版ですので、その点十分に理解して使ってください。

さて、Emacs23を自前でビルドするのもいいのですが、幸いなことにしてemacs23をubuntu用にビルドしてパッケージ化してくれている人がいます。ですのでこちらにお世話になった方が楽だし便利なのでお世話になっちゃいましょう。
パッケージのありかと導入手順はこちら

導入後の基本設定。

無事インストが完了したら、~/.emacsに以下のように追記します。
; emacs23 用設定
(cond ( (string-match "^23\." emacs-version)
(cond (window-system
(set-default-font "Bitstream Vera Sans Mono-15")
(set-fontset-font (frame-parameter nil 'font)
'japanese-jisx0208
'("IPA モナー ゴシック" . "unicode-bmp"))
))))
私はemacs21と併用しているので、(cond ( (string-match "^23\." emacs-version)でバージョン判定を入れています。
設定が終わったら、emacs-snapshot-gtk として起動し、アンチエイリアス表示されていたら成功。されていなかったら、~/.Xresource に
Emacs.FontBackend: xft
を書き込んで試してみてください。



なお、複数のemacsを入れていてemacsの関連付けが変わってしまったという人は、こちらを参照してください。

2008/06/11:追記:


 ubuntu 8.04 からはリポジトリに取り込まれましたので、上記リポジトリの追加をしなくても
sudo apt-get install emacs-snapshot-gtk
でインストール出来ます。