2008年1月21日月曜日

Emacsで引用記号付き貼り付け

昔は、引用記号付き貼り付けが、エディタの必須機能の一つという時代がありました。
今では各アプリが自前の入力エディタを備えているので、必要とされなくなりましたが・・・orz

ま、それでもないよりは、あったほうがいいじゃん。ということで、Emacsで引用記号付き貼り付けの方法なぞを。

まずは、デフォルトでのやり方。
string-rectangle というコマンドが標準であります。 C-x r t に割り当てられているので、引用したい行を範囲選択し、C-x r t とすると、ミニバッファに引用記号を聞いてくるので、指定すればOK。
実にお手軽。

もうひとつは、~/.emacs に以下を追加して、

;;;====================================
;;;; 引用記号付き貼り付け
;;;====================================
;;; 切り取った文字列を指定した引用記号で貼り付ける。
(defun commentize (str)
"引用記号付き貼り付け。
切り取った文字列を指定した引用記号で貼り付ける。"
(interactive "s引用記号: ")
(save-restriction
(yank)
(narrow-to-region (mark) (point))
(goto-char (mark))
(while (re-search-forward "^[ \t]*" nil t)
(replace-match str)))
(end-of-line)
(newline 2))
Kill(切り取り)して、M-x commentize とすれば、引用記号を聞いてくるので、指定すれば引用記号付きで貼り付けてくれます。

私はこれを、

(global-set-key "\C-\M-y" (lambda () (interactive) (commentize "> ")))
として C-M-y に割り当てています。あらかじめ引用記号を指定してあるので、いちいち毎回引用記号を指定しなくてすむので楽ちんです。

2008年1月19日土曜日

SKKサーバーを入れてみた

Emacsで、初回に辞書を読み込む時の時間に苛立ちを憶え、SKKサーバを入れてみることにしました。
複数の辞書を使用しているので、uim-skkDDSKKで両方で使用したいというのもありますし、メモリの節約にもなると思ったからです。

とりあえず、ubuntuのリポジトリに複数の辞書を扱えるskkserverは、skksearchしかなかったので、skksearchを入れました。
sudo apt-get install skksearch tinycdb skkdic-cdb

ちなみにうちの環境では、skksearch を入れたら、らnetkit-inetdからopenbsd-inetdに変わりました。
skksearchはcdb形式の辞書を扱いますので、手持ちの辞書をcdb形式に変換します。
cd /usr/share/skk/
sudo skk2cdb SKK-JISYO.L SKK-JISYO.L.cdb
また手持ちの2ch辞書、顔文字辞書、カタカナ英語変換辞書、をそれぞれ同じようにcdb形式に変換しました。

次に /etc/skksearch.conf を開いて、
cdb:/usr/share/skk/SKK-JISYO.cdb
cdb:/usr/share/skk/SKK-JISYO.2ch.cdb
cdb:/usr/share/skk/SKK-JISYO.KAO.cdb
cdb:/usr/share/skk/katakana-eigo.jisyo.L.cdb
な感じで使用する辞書を登録。
事前準備が出来たので、inetdを起動する。
sudo /etc/init.d/openbsd-inetd start
念の為、~/.skk に、
(setq skk-aux-large-jisyo nil)
と書いておいて、Emacsを起動。おもむろにユーザ辞書にない単語を入力してみて、変換。
瞬時に変換候補が出た。以前のように初回辞書読み込みが発生することもなく、あっという間。
う〜ん、素晴しい。こんなことならもっと早くやれば良かった。

uim-skk の方は、uim-pref-gtk で、辞書ファイルの変わりにSKKサーバを使用にチェックを入れるだけ。

これで複数の辞書を、EmacsのSKKとuim-skkとで共通に利用できて、Emacsでも初回辞書読み込みに待たされることもなくなった

2008年1月8日火曜日

EmacsでTwitter

Twitterの日本語版が春にでも始まるらしいので、いい機会だから試してみた。

Twitter は海の向こうではSNSを抜いて大人気だとか。感覚的にこう、なんだろう。つぶやきの文化みたいな?

みんながぶつぶつ言葉の泡を吐くんだけど、それらが互いに干渉しあって、時に大きな泡となって盛り上がったり、時には消し飛んで消沈したり。
Twitterが受け入れられているのは、ブログのように気張って書く必要もなく、誰かに意識してメッセージを届けようとする必要もなく、ゆる〜く、ぶつぶつ呟けるからみたいなところがあるのかなと思う。

もう一つTwitterを試してみようと思ったのは、EmacsでTwitterが出来るtwitering-modeというのがあったから。

ここからtwittering-mode.elを落してきて、~/.lispあたりに放り込んで、~/.emacs

(load "~/.twitter.el")
と書いて、~/.twitter.elに、

(require 'twittering-mode)
(setq twittering-username "アカウント名")
(setq twittering-password "パスワード")
と書いた。
~/.twitter.elと、別ファイルにしたのは、IDとパスワードを~/.emacsに書きたくなかったから。~/.twitter.elはもちろん
chmod 600 ~/.twitter.el
しておくこと。

使い方は、M-x twittering-mode起動
C-c C-s書き込み
デフォルトでは90秒で自動的に更新される。


前後しちゃうけど、Twitterの使い方は、

を参考に。

そしてTwitterは一人でぶつぶつ呟いてもおもしろくもなんともない。どんどん友達を誘おう。
Twitterではかなり気軽に知らない人を誘ってもいいみたい。
友達の見つけ方は以下から探してみるといいかも。

2008年1月6日日曜日

pidginでYahoo!チャットを使えるようにする

gaimから名前が変って設定ファイルの場所も変ったみたい。
~/.purple/accounts.xml を開いて、yahooアカウントの
<setting name='room_list_locale' type='string'>ja</setting>
の下あたりに、
<setting name='room_list' type='string'>http://insider.msg.yahoo.co.jp/ycontent/</setting>
を追記。

これで、ツールの部屋一覧で日本の部屋一覧が表示されます。

2007年12月30日日曜日

Emacsでファイル情報を表示させる

Emacsでカレントバッファで開いているファイルのプロパティというかタイムスタンプを見てみたくなったので、軽くでっちあげてみた。

~/.emacsに以下を追記。

;;;; File-Info - ファイル情報
;;;====================================
;;; 2007年12月29日(土曜日) 21:07:43 JST
;;; カレントバッファのファイル情報を表示する。
(defun file-info () "
カレントバッファのファイル情報を表示する。"
(interactive)
(if (buffer-file-name (current-buffer))
(progn
(let* ((file-name (buffer-file-name (current-buffer)))
(f-attr (file-attributes file-name))
(a-time (nth 4 f-attr)) ; 最終アクセス時刻
(m-time (nth 5 f-attr)) ; 最終修正時刻
(f-size (nth 7 f-attr)) ; ファイルサイズ
(f-mode (nth 8 f-attr)) ; ファイル属性
(mes1 (format "ファイルパス: %s\n" file-name))
(mes2 (format "最終参照時刻: %s\n"
(format-time-string
"%Y-%m-%d %H:%M:%S" a-time)))
(mes3 (format "最終修正時刻: %s\n"
(format-time-string
"%Y-%m-%d %H:%M:%S" m-time)))
(mes4 (format "ファイルサイズ: %s byte\n" f-size))
(mes5 (format "ファイル属性: %s" f-mode))
(mess (concat mes1 mes2 mes3 mes4 mes5)))
(message "%s" mess)))
nil ))

(global-set-key "\C-ci" 'file-info) ; file情報を表示する。
これでM-x file-infoC-c i でカレントバッファの絶対パス最終アクセス時刻最終修正時刻ファイルサイズ、がミニバッファに表示される。

作ってから思ったけど、なんか意味あるのかなこれ・・・orz
ファイルのタイムスタンプが知りたくて書いてみたんだけど。まあいいかw

  • 20080112追記
    ファイル属性も表示するように変更してみた。

2007年12月19日水曜日

ubuntuにDockを入れてみた

以前kiba-dockというdockを試してみたんですが、あまりにもバギーで実用に耐えず、使用するのをやめてしまいました。
Dockに関してはWindowsのほうが種類も豊富で、また完成度も高く、ubuntuでは少し残念な思いをしていたところ、Avant Window Navigatorというのを知り、試しに導入してみたところ、なかなかいい感じなので常用することにしてみました。

インストール

/etc/apt/sources.listを開いてリポジトリを追加します。
deb http://download.tuxfamily.org/syzygy42 gutsy avant-window-navigator
deb-src http://download.tuxfamily.org/syzygy42 gutsy avant-window-navigator
gpgキーの追加
wget http://download.tuxfamily.org/syzygy42/reacocard.asc
sudo apt-key add reacocard.asc
rm reacocard.asc
sudo apt-get update
そしてパッケージを入れる。
sudo apt-get update
sudo apt-get install avant-window-navigator-bzr awn-core-applets-bzr

あとはメインメニューのアクセサリにavant-window-navigatorが登録されますのでクリックで起動。
設定はメインメニューのシステム→設定→Awn managerで出来る。

現在安定して動作していて実用上なんの問題もなく使えています。



現在のデスクトップの状態。壁紙はてきとう

2007年12月16日日曜日

ubuntuのOpenOfficeでアンチエイリアス

ubuntuのOpenOfficeはメニューがビットマップフォントで表示され、本文も10ポイント程度の小さい文字はビットマップになっています。
他のアプリはアンチエイリアスの効いたアウトラインフォントなのにOOoだけがビットマップ、というのも寂しいのでこれをアンチエイリアスの効いた状態になるようにします。

メインメニューの上で右クリックし、メニューの編集を選択してクリックし、OOoの項目のプロパティを編集して、コマンドの部分に、
env SAL_EMBEDDED_BITMAP_PRIORITY=0
を追記するだけです。ooffice -writer %Uとなっていたら、
env SAL_EMBEDDED_BITMAP_PRIORITY=0 ooffice -writer %U
ですね。
これで綺麗なフォントでOOoが表示されます。

適用前


適用後