2008年10月31日金曜日

ワードサラダって頭にくる

 最近googleのブログ検索でemacsをキーワードにブログを読んでいくと、支離滅裂なブログがあって???となることが度々。
 だってemacsがおいしい。とか、emacsを買った。とか。もう全然意味が分かんない。
 そのうちSEO対策でキーワードをちりばめた文章を人口無能に書かせているのかなと思って調べたら、ワードサラダっていうスパムの一種だそうです。
 日本では去年当たりから流行りはじめたみたい。
 人間の目には明らかにおかしいとわかる文章でも検索ボットには文章として認識されてスパムフィルタをすり抜けてしまうみたい。

 しかしこれがまた異様に腹が立つ。おまけにemacsなんていう、ごく一部の人種しか興味がないようなキーワードまで利用されていることにものすごい腹が立つ。

 GoogleReaderでブログは読んでいるので、最近はリンクを踏まないようにしているけど、あー腹が立つ。
 みなさんもあさましいワードサラダにはご注意を。

2008年10月17日金曜日

howmで保存時の設定

 howm という Emacs 使いなら絶対使っとけみたいなキラーアプリがあります。いわゆるメモ取りソフトなんですが、全文検索も出来て、リンクも出来て、しかもただのテキストファイルだから加工も容易で、ToDoアプリとしても使えて、スケジューラーとしても使えて、お勧めです。

 それで howm をメモソフトとして使っているのですが、基本的にメモはプライベートなモノなので他人に見られないようhowmのメモを保存時にパーミッションを600に変えるようにします。
 以下を~/.emacs に追記。

;;; 保存時処理
;;; 保存時にパーミッションを"600"にする。
(add-hook'howm-after-save-hook
(lambda ()
(let ((name (buffer-file-name)))
(set-file-modes name 384)))) ; 600

2008年10月16日木曜日

Emacsでオートセーブファイルの作成場所を変える

 オンラインストレージで Dropbox.com というのがありまして。こいつがとても凄くて、~/Dropbox/ にファイルを放り込むだけで自動的にファイルがアップされ、ファイルの履歴も取れて、同期も早くて、linuxでもMacでもWindowsでも使えるという夢のようなサービスなんですが、
 この~/Dropbox/内のファイルをEmacsで編集すると自動的に「#」の付いた自動保存ファイルが作成され、それがDropboxに同期されて履歴として残ってしまうという。
 これが激しくウザいので、~/Dropbox/以下では自動保存ファイルを作らないようにします。
~/.emacs に以下を追記。

(setq auto-save-file-name-transforms
`((".*/Dropbox/.*" ,temporary-file-directory t)))
これで ~/Dropbox/ 以下のオートセーブファイルは /tmp/ 以下に作成されるようになります。

2008年10月15日水曜日

Emacsの保存関係の設定

 Emacs には自動保存機能がデフォルトで有効になっています。
 ファイルを編集すると、ファイル名の前後に「」を付けたバックアップファイルが作成され、随時編集内容がこのファイルに保存されていきます。
 このため何らかの理由でファイルを保存しそこなったとしても、このバックアップファイルからリカバリできる仕組みになっています。
 この自動保存はデフォルトでは30秒ごとか、300打鍵ごとにオートセーブされるようになっています。
 間隔が長い、あるいは短かいと感じたのなら調整しましょう。それぞれ、
(setq auto-save-timeout 30)   ; 自動保存する間隔。秒。
(setq auto-save-interval 300) ; 300打鍵ごとに自動保存
の値を変えることで変更出来ます。

簡易履歴機能

 Emacsでは簡易的ながら複数の世代に渡るバックアップの履歴を取ることが出来ます。つまり、前の編集内容。さらにその前の編集内容、さらにさらに・・・
 編集して保存して、やっぱり以前の状態に戻したい。さらにはその前の編集した内容の方がよかったので、なんていうことにも対応出来て便利です。
 この世代バックアップファイルは、ファイル名の末尾に「.~1~」のようなサフィックスを付けられて保存されていきます。番号は自動的に増えていきます。
 バックアップファイルは元のファイルを同じ場所に保存されいきます。しかしこれではバックアップファイルだらけになって少々鬱陶しいのでバックアップファイルは専用ディレクトリを作ってそこに全部保存されるようにします。

(setq make-backup-files t) ; バックアップファイルを作成する。
;;; バックアップファイルの保存場所を指定。
(setq backup-directory-alist
(cons (cons "\\.*$" (expand-file-name "~/.backup"))
backup-directory-alist))

(setq version-control t) ; 複数のバックアップを残します。世代。
(setq kept-new-versions 5) ; 新しいものをいくつ残すか
(setq kept-old-versions 5) ; 古いものをいくつ残すか
(setq delete-old-versions t) ; 確認せずに古いものを消す。
(setq vc-make-backup-files t) ; バージョン管理下のファイルもバックアップを作る。
 これでバックアップファイルは~/.backup/以下に保存され、最新の世代から5つと、古い方から5つ残されていきます。

保存時実行属性付与

 定番ネタです。
 シェルスクリプトを作って保存したときに、いっしょに実行属性を付けてくれます。地味ながらも大変有り難い機能です。
 こちらを参考、というか丸写し(^_^;)

;;;====================================
;;;; シェルスクリプト保存時にchmod +x を自動実行する
;;;====================================
(defun make-file-executable ()
"Make the file of this buffer executable, when it is a script source."
(save-restriction
(widen)
(if (string= "#!" (buffer-substring-no-properties 1 (min 3 (point-max))))
(let ((name (buffer-file-name)))
(or (equal ?. (string-to-char (file-name-nondirectory name)))
(let ((mode (file-modes name)))
(set-file-modes name (logior mode (logand (/ mode 4) 73)))
(message (concat "Wrote " name " (+x)"))))))))
(add-hook 'after-save-hook 'make-file-executable)


 以上、地味ながらも確実にEmacsの使い心地を向上させてくれる大事な保存関連の設定でした。

2008年10月7日火曜日

ubuntuのゴミ箱をコマンドラインから操作する

 ubuntuのデスクトップにあるゴミ箱。ファイルを削除しても一旦ゴミ箱に入るので、誤ってファイルを削除してもゴミ箱から復活できて安心ですよね。
 ですがコマンドラインからファイルを削除する場合は、rm コマンドを使い、そして削除されたら綺麗さっぱりこの世から消えてしまって二度とその失なわれたファイルは返ってきません。
 そこでコマンドラインからでもゴミ箱機能を使いたいっということで、 trash-cli の出番です。

 trash-cli はコマンドラインからゴミ箱を操作するスクリプトです。類似のコマンドと違い、独自のゴミ箱を設けるのではなく、KDEやGNOMEのゴミ箱と連動します。素晴しい。

インストール

 こちらからファイルを落してきます。落としたら展開し、展開したディレクトリに移動して、
sudo python setup.py install
とするだけでインストールされます。

使い方

使い方はとても簡単です。

ファイルを削除する

 削除されたファイルはゴミ箱に移動します。
trash ファイル名

ゴミ箱の中身を見る

list-trash

ゴミ箱からファイルを復活させる

restore-trash
 実行すると以下のよう選択画面が出ますので、復活させたいファイルの番号を入力するだけです。復活させたファイルはちゃんと元の場所に戻っていることに注目して下さい。
 0 2008-10-03 19:19:22 /home/foo/Desktop/po_dpkg-ja.po.org
1 2008-10-06 15:02:23 /home/foo/Desktop/1222662276502.jpg
2 2008-10-03 19:19:22 /home/foo/Desktop/po_dpkg-ja.po
3 2008-10-07 13:13:49 /home/foo/trash-test
What file to restore [0..3]: 3

ゴミ箱を空にする

empty-trash

指定した日数以前のファイルをゴミ箱から削除する

empty-trash 日数
empty-trash に例えば 7 という数値を与えてあげると今日の日にちから7日以前のファイルをゴミ箱から削除します。


rm と置き換える

 trash コマンドは rm コマンドと置き換えてこそ真価を発揮すると言えるでしょう。 ~/.bashrc
alias rm='trash'
と記述し、
source ~/.bashrc
として即反映させます。以降 rm と打てば trash コマンドが実行されます。



*なおubuntuの次のバージョンである intrepid からはリポジトリに用意されていますのでインストールがより簡単になるでしょう。