タグ別アーカイブ: Emacs

psvn でのパスワードの入力

自分のためのメモ。 Emacs の subversion のためのインターフェース psvn.el の先頭のほうで、コメントの形の FAQ に書かれていた。
TEXT:
  1. ;; Q3: How do I enter a username and password?
  2. ;; A3: In the *svn-status* buffer press "s", switch to the
  3. ;;     *svn-process* buffer and press enter. You will be prompted for
  4. ;;     username and password.

Emacs で subversion のコミットログ

日本語入力システムにWnn7を使うために環境変数 LANG を ja_JP.eucJP にしなければならないのだが、いくつか問題が出てきた。 そのうちのひとつ、emacs で subversion のコミットをする際のログを日本語で書こうとするとエラーを起こす。しばらく放っておいたのだが、やはりログは日本語で書いたほうがささっと書ける1)。 .emacs に
LISP:
  1. (add-hook 'svn-log-edit-mode-hook
  2.         '(lambda ()
  3.          (set-buffer-file-coding-system 'euc-jp)))

を加えて解決した。
  1. 諸説あるが、何しろここでは自分ひとりで使っているリポジトリのものなので自分流である。

emacs22 と wnn7-elisp パッケージ

Debian sid に emacs22 (とその GTK版emacs22-gtk) が降りてきた。さっそく入れようと思ったがいくつかのパッケージが対応していない。特に wnn7-elisp は Debian 公式のものではなく、商用(しかも5,6年も前)なので対応パッケージが出るとも思われない。自分で修正することとした。
DIFF:
  1. --- wnn7-elisp.orig/DEBIAN/control  2002-05-22 18:42:05.000000000 +0900
  2. +++ wnn7-elisp/DEBIAN/control   2007-07-09 15:02:36.000000000 +0900
  3. @@ -1,13 +1,13 @@
  4.  Priority: extra
  5.  Architecture: all
  6. -Depends: emacs20 | emacs20-dl | xemacs21-mule | xemacs21-mule-canna-wnn
  7. +Depends: emacs22 | emacs-snapshot | emacs21 | emacs20 | emacs20-dl | xemacs21-mule | xemacs21-mule-canna-wnn
  8.  Installed-Size: 587
  9.  Maintainer: OMRON SOFTWARE Co.,Ltd. <wnn-info@omronsoft.co.jp>
  10.  Description: A package of Japanese input method 'Wnn7' elisp client.
  11. diff -u -r wnn7-elisp.orig/usr/lib/emacsen-common/packages/install/wnn7-elisp wnn7-elisp/usr/lib/emacsen-common/packages/install/wnn7-elisp
  12. --- wnn7-elisp.orig/usr/lib/emacsen-common/packages/install/wnn7-elisp  2002-05-22 18:41:59.000000000 +0900
  13. +++ wnn7-elisp/usr/lib/emacsen-common/packages/install/wnn7-elisp   2007-07-10 21:50:47.818091867 +0900
  14. @@ -37,7 +37,7 @@
  15.      emacs)
  16.      ;;
  17.  
  18. -    emacs20|xemacs21)
  19. +    emacs22|emacs-snapshot|emacs21|emacs20|xemacs21)
  20.      install -m 755 -d ${ELCDIR}
  21.      (cd ${ELDIR}
  22.  
  23. diff -u -r wnn7-elisp.orig/usr/lib/emacsen-common/packages/remove/wnn7-elisp wnn7-elisp/usr/lib/emacsen-common/packages/remove/wnn7-elisp
  24. --- wnn7-elisp.orig/usr/lib/emacsen-common/packages/remove/wnn7-elisp   2002-05-22 18:41:59.000000000 +0900
  25. +++ wnn7-elisp/usr/lib/emacsen-common/packages/remove/wnn7-elisp    2007-07-10 21:51:17.472192301 +0900
  26. @@ -10,7 +10,7 @@
  27.  case "${FLAVOR}" in
  28.      emacs)
  29.      ;;
  30. -    emacs20|xemacs21)
  31. +    emacs22|emacs-snapshot|emacs21|emacs20|xemacs21)
  32.      echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}
  33.      rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE}
  34.      rm -f ${STARTDIR}/50${STARTFILE}*;

wnn7-elisp の他にも auctex, gnus も同様に修正すればいますぐ使える。これらは公式パッケージなのでしばらく待てば emacs22 対応版が出るだろう。

subversion

ようやく CVSからsubversionに移行した。自分一人の環境だし、滅多にコードも書かないので何のために?というところだが、まあいろいろとファイルの管理などを。出遅れた分あちこちに情報があるので割とスムーズに移行できそうだ。 しかしいくつかの不満はある(使い手が慣れていないからかもしれないが)。ひとつは、パーミッションが保存されないこと。CVSでは作業スペースでパーミッションを変更しておいた状態で update しても(内容はupdateされても)パーミッションが変わることはなかった。subversionでは、いったんファイルを消してから新たに作ったかのように、元のパーミッション(その時点の umaskにしたがって)になってしまう。group の変更も元に戻ってしまう。webページのように、webサーバから見えるようにしてチェックしつつ作業をしている場面では面倒くさい。tarを使うときのようにパーミッションなどが保存されるといいのだが。 もうひとつの問題は日本語の文字化け。CVSより格段によくなっているけれども。 まず、ここの環境では /etc/environment で LANG=ja_JP.EUC-JP となっているしその中の自分の環境でも LANG=ja_JP.EUC-JP としている。普段使いのエディタ Emacs も (set-default-coding-systems 'euc-japan) だ。そこで /var/lib/trac/(リポジトリ)/conf/trac.ini で
CODE:
  1. [trac]
  2.   default_charset = euc-jp

とした。 ファイルの中身がeuc-jpなら何の問題もないのだが、だんだんutf-8のものも出てきた。するとTracで閲覧するときに化けてしまう。これは TracJaの説明にもあるように、
Subversion リポジトリに格納しているファイルのエンコードが、ファイルごとに違う場合、 Subversion 側で各ファイルの svn:mime-types 属性にcharset を正しく設定することで解消します (trac-0.8.2 以降):
で解決した。phpだからといって mime-typeを application/phpとするのはやりすぎで、閲覧することを考えると text/* にしておくのが吉。text/x-php としてみた。text/plain がもっとも無難だとは思うが。 Emacsでは[[psvn.elを使う。編集中に差分を見たいとき = (差分)とすると、euc-jpのバッファにutf-8を表示しようとして文字化けしてしまう。E (Ediff)だと化けずに表示できるので、こちらで見ることにしよう。