by shigemk2

当面は技術的なことしか書かない

コミット日付をタイムスタンプに復元したい

通常、git cloneしたリポジトリのファイルのタイムスタンプは、cloneした日付である。

でもファイルのタイムスタンプを実際に編集した時、せめてコミットしたときまで復元したいときってあるよね。あると思う。

実際に見てみると、ああ^~って感じのシェル芸でした。

for FILE in `git ls-files`; do
  TIME=`git log --pretty=format:%ci -n1 $FILE`
  echo $TIME'\t'$FILE
  STAMP=`date -d "$TIME" +"%y%m%d%H%M.%S"`
  touch -t $STAMP $FILE
done
  1. git ls-filesでgitで追跡しているファイルをリストアップ
  2. リストをforでぐるぐる回す
  3. git log --pretty=format:%ci -n1 $FILEでコミット時のタイムスタンプを取得する
  4. タイムスタンプとファイルをechoで出力
  5. タイムスタンプ用にdateで整形
  6. リストのファイルのタイムスタンプを修正

こんなかんじでしょうか。

git/コマンド - 初心者エンジニアの簡易メモ

AutoHotkeyでEmacsキーバインドにしている状態でTeraTermからEmacsを立ち上げた結果

普段AutoHotKeyでキーバインドをEmacsライクにしているのですが、この状態でTeraTermなんかでサーバログインしてサーバ上でEmacsを立ち上げると、えらいことになりました。

www.autohotkey.com

sourceforge.jp

具体的には、

  • Ctrl xが効かない(Esc扱いされる)

あとは忘れましたが、普通にファイルを開こうとすると非常にワンダーな挙動になって、こりゃどうしたものかなあっていろいろ思案していました。

自分で試したものだと

  • SuperPuttyやPuttyでのEmacsはきちんとうごく
  • RTLoginはダメ
  • TeraTermもダメ

こんなかんじです。

で、しょうがないのでAutoHotKeyを切ってみたら、TeraTermのEmacsで、Ctrl xがきちんと発動してくれました。

あまりにもググラビリティが低く、AutoHotKeyの問題なのかどうかわかりませんが、もう少し調べてみる必要はあるように思いました。

追記

僕のAutoHotkey.ahkです。たぶんAutoHotKeyの問題だと思われ。なお、スクリプトが800行以上あるので埋め込むと大変なことになるので埋め込みません。

AutoHotkey.ahk

今更だけどEmacs 24.4をビルドしてみる

Emacs 24.4リリース!ファーストインプレッション | るびきち「日刊Emacs」

環境はFedora20です。

$ wget -O-  http://ftp.gnu.org/gnu/emacs/emacs-24.4.tar.xz | tar xJvf -
$ cd emacs-24.4
$ ./configure --disable-largefile --with-x-toolkit=motif --without-toolkit-scroll-bars \
  --without-xaw3d --without-xim --without-compress-info --without-sound --without-pop \
  --without-sync-input --without-xpm --without-tiff --without-rsvg --without-gconf \
  --without-gsettings --without-selinux --without-gpm --without-makeinfo --with-x && make \
  && sudo make install

そのまんまでいけるかと思ったら、いくつかパッケージが足りずにビルドに失敗したので、パッケージを都度インストールして乗り切りました。

たぶん人によって違うと思われるので割愛しますが、ちょっとつまづいたところだけ共有します。

www.linuxquestions.org

あと、フォントの設定をきちんとしないといけないっぽいので、MigMixをごにょごにょしました。

d.hatena.ne.jp

      (set-default-font "MigMix 1M-10:spacing=0")
      (set-fontset-font (frame-parameter nil 'font)
            'japanese-jisx0208
            '("MigMix 1M-10" . "unicode-bmp")))))