So-net無料ブログ作成

emacsで編集したときの拡張属性の挙動 [macOS]

Mac OS X上のエディタでテキストファイルを保存すると、文字コードを保存するための拡張属性が付きます。
$ ls -l@i aaa.txt
13960281 -rw-r--r--@ 1 hat  hat  9 Dec 10 21:14 aaa.txt
         com.apple.TextEncoding  14


このファイルをemacsで編集してやると、abc.txt~というバックアップファイルができるわけですが、
$ ls -l@i aaa.txt*
13960284 -rw-r--r--  1 hat hat 12 Dec 10 21:15 aaa.txt
13960281 -rw-r--r--@ 1 hat hat  9 Dec 10 21:14 aaa.txt~
         com.apple.TextEncoding  14

拡張属性がバックアップファイルの方に移動してしまいます。
なぜかというと、emacsはファイルをリネームしてバックアップファイルとし、新たに元のファイル名を作るからです。この挙動は編集前後のinode番号を見ればわかります。

で、対策方法ですが、.emacs.el
(setq backup-by-copying t)

としてやると、リネームではなくコピーでバックアップファイルを作るようになるので、拡張属性が移動しません。バックアップファイルの方は拡張属性が付きませんが、まあ、しょうがないか。
タグ:Mac OS X
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0