朝寝して宵寝するまで昼寝して時々起きて居眠りをする
十年くらい前に読んだのを引っぱり出してえいえいと読んでいたのがようやく読了。以前読んだときは見合いばかりしている話だという印象が強かったのですが、読み返してみるとそこまで多くはなく(それでも少ないということはないけれど)、どちらかというと幸子、雪子、妙子の、四姉妹の内の三人の女たち(残りの一人は長女の鶴子ですが他の三人と比べてあまりに出番が少ない)の人間らしい生々しい生態を、きらきらしい出来事や雅やかな衣をまといつけつつもどこか執念深い筆致でもって綴っていて、同じ作者の『卍』などにも通じるようなものがあるような感想を持ちました。
というのは物語の冒頭から語られる姉妹の『B足らん』(ビタミンB欠乏症)であったり、幸子の妊娠であったり、見合いの度に取りざたされる雪子の目の縁のシミであったり、さらには幸子の娘の悦子の猩紅熱や妙子の大病であったりするのですが、彼女たちの身体のことについて実に事細かに書かれています。たぶんこれを年表にでも書き付けながら読むとそれはそれでおもしろくもなりそうですが、年に似合わぬ若作りで華やいだ旧家の姉妹をこの世に誕生させておいて、金襴緞子の絵巻物ですまないところがこの小説のひと癖もふた癖もあるところではないかと思います。
Windows のエディタは xyzzy 一択です。
とだけ書くとここで終わってしまうのですが、これは気に入らない点があれば Lisp でだいたいどうにでもなるし、Windows ネイティブなのでツールチップやヘルプの連携、ぶら下がりなどなど至れり尽せりで、さらにはフォントも簡単に好きなフォントを使えるというので、導入当初の泣きそうなハードルの高さも超えて常用エディタとなりました。MacBook 環境で Carbon Emacs を使い始めたのもそもそもはベースに xyzzy の使用経験があるからです。
他に Windows2000 環境には EmEditor のフリー版を入れています。昔メモ帳の代わりに使えるぐらい軽い機能限定のフリーエディションがあったのですが、いま少し探したところではないようです。
EmEditor はインタフェースがやさしい感じでアイコンなんかも丁寧に使ってあるところが他の Windows 用エディタと比べてぐんと飛びぬけているポイントです。結局エディタはというのは長いこと眺めている画面なので、フォントが美しくなかったりアイコンが気に入らないものだったりするのにあまり耐えられないのです。(ちなみに xyzzy はアイコンのツールバーが非表示)で、EmEditor は別にインタフェースが売りだけではなくて、無料でいいのかという水準は軽く超えるぐらいには高機能な良いエディタだと思います。そしてもちろん余裕があれば有償版のほうが当然メリットはあると思います(使ったことがないので予想)。あまり使っていないのできちんと紹介はできないのですが、xyzzy だと拡張 Lisp で補わないといけないようなファイルタイプにも対応していたりして、とんがったところがなく、Windows を普通に使っていく人にはオススメできるエディタです。
xyzzy に NetInstaller 経由でインストールされているパッケージの一覧
(provide "winkey2") (in-package "editor") ;;; winkey.lからコピー (defvar *default-selection-keymap* (let ((keymap (make-sparse-keymap))) (define-key keymap #\c-c 'copy-selection-to-clipboard) (define-key keymap #\c-x 'kill-selection-to-clipboard) (define-key keymap #\tab 'tabshift-selection) (define-key keymap #\s-f15 'untabshift-selection) (set-extended-key-translate-table exkey-s-tab #\s-f15) keymap)) ;;;;;;;;;;;;;;;;;; ;; ■ 範囲選択中にタブが押されたら冒頭にタブを挿入 (defun perform-replace-selection (pattern replacement query regexp interactive-p noerror) "選択範囲内を perform-replace" (interactive "*p") (let ((type (get-selection-type))) (selection-start-end (start end) (save-restriction (narrow-to-region start end) (goto-char (point-min)) (perform-replace pattern replacement query regexp interactive-p noerror) (save-excursion (goto-char (point-min)) (start-selection type t (point-max)) (fix-selection-point) ))))) (defun tabshift-selection () "冒頭にタブを挿入" (interactive "*p") (perform-replace-selection "^.+$" "\t\\0" nil t nil t)) (defun untabshift-selection () "冒頭のタブを1つ削除(タブがなければ何もしない)" (interactive "*p") (perform-replace-selection "^\t" "" nil t nil t)) (setq-default selection-keymap *default-selection-keymap*) #| ;;; winkey.lからコピー (defvar *default-selection-keymap* (let ((keymap (make-sparse-keymap))) (define-key keymap #\c-c 'copy-selection-to-clipboard) (define-key keymap #\c-x 'kill-selection-to-clipboard) keymap)) (setq-default selection-keymap *default-selection-keymap*) |# (setq-default selection-keymap *default-selection-keymap*) (global-set-key #\c-z 'undo) (global-set-key #\c-v 'paste-from-clipboard) (define-key esc-map #\c-x #'ctl-x-prefix) (define-key esc-map #\c-c #'specific-command-prefix) ;;; windowsっぽい設定 ;(global-set-key #\c-a 'selection-whole-buffer) ;(global-set-key #\c-f 'search-dialog) (global-set-key #\c-n 'new-file) ;(global-set-key #\c-o 'open-filer) (global-set-key #\c-p 'print-selected-buffer-dialog) ;(global-set-key #\c-r 'replace-dialog) ;(global-set-key #\c-s 'save-buffer-dialog) ;(global-set-key #\home 'beginning-of-virtual-line) ;(global-set-key #\end 'end-of-virtual-line) (global-set-key #\c-home 'beginning-of-buffer) (global-set-key #\c-end 'end-of-buffer) (global-set-key #\s-c-home 'selection-beginning-of-buffer) (global-set-key #\s-c-end 'selection-end-of-buffer) ;(global-set-key #\f3 'search-forward-again) ;(global-set-key #\s-f3 'search-backward-again) (global-set-key #\m-f4 'kill-xyzzy) (global-set-key #\c-f4 'close-selected-buffer) (global-set-key #\c-left 'backward-word) (global-set-key #\c-right 'forward-word) (global-set-key #\s-c-left 'selection-backward-word) (global-set-key #\s-c-right 'selection-forward-word)
[Font] Ascii=13,"BDF UM+",128 Japanese=13,"BDF UM+",128 Latin=18,"Courier New",0 Cyrillic=18,"Courier New",0 Greek=18,"Courier New",0 GB2312=18,"MS Hei",0 BIG5=18,"MingLiu",0 KSC5601=18,"GulimChe",0 Georgian=18,"BPG Courier New U",0 lineSpacing=2 backslash=1 recommendSize=0 sizePixel=1 [Colors] textColor=#613c29 backColor=#fbfaf4 ctlColor=#d7c6b5 selectionTextColor=#f000000 selectionBackColor=#675441 kwdColor1=#6756d1 kwdColor2=#33844f kwdColor3=#bb7d46 stringColor=#5a5e87 commentColor=#d9b681 tagColor=#bf9b46 cursorColor=#8b6bba caretColor=#7b3c06 imeCaretColor=#52cbad linenum=#a4a0a0 reverse=#2685758 unselectedModeLineFg=#633821 unselectedModeLineBg=#10e3dfe0 modeLineFg=#563d32 modeLineBg=#d9ccc4 fg1=#967a00 bg1=#d8e8f8 fg2=#9ced bg2=#e1eef4 fg3=#4c64a2 bg3=#ccdadb fg4=#3e2c6c bg4=#e2e0c1 fg5=#293eca bg5=#f1e6ca fg6=#8b55c5 bg6=#d0f4ee fg7=#34008d bg7=#aad0a9 fg8=#b3711b bg8=#cbeaf4 fg9=#dbb100 bg9=#52d0ee fg10=#7a8100 bg10=#c1c7fa fg11=#457597 bg11=#dbddfb fg12=#4d78e6 bg12=#f1e2de fg13=#2bb183 bg13=#eddce9 fg14=#51714f bg14=#ebeade fg15=#88814d bg15=#e0e0e0 [Misc] 1280x1024=(31,211)-(1156,986),1 saveWindowSize=1 saveWindowPosition=1 restoreWindowSize=1 restoreWindowPosition=1 windowFlags=#17f fnkeyLabels=0 foldMode=0 foldLinenumMode=2 [Filer] textColor=#9000000 backColor=#6ffffff highlightTextColor=#fffffff highlightBackColor=#e6a240a cursorColor=#c000c0 column=239,65,116,44 s1280x1024=(549,452)-(953,970),1 sort=0 columnLeft=169,65,116,44 columnRight=121,65,116,44 1280x1024=(513,59)-(1260,517),1 sortRight=0 sortLeft=0 [PrintPreview] 1280x1024=(219,351)-(1062,959),1 scale=99 [Print] textMargin=(100,150)-(100,150) headerOffset=100 footerOffset=100 columnSep=50 lineSpacing=20 lineNumber=0 columns=1 foldColumns=0 header="%f%l%r%:w, %0d %:m %Y %0h:%0M:%0s" footer="- %p -" headerOn=1 footerOn=1 recommendSize=1 showProportional=1 useBitmap=0 Ascii=100,"M+1P+IPAG",128,0,0 Japanese=100,"MS ゴシック",128,0,0 Latin=100,"Courier New",0,0,0 Cyrillic=100,"Courier New",0,0,0 Greek=100,"Courier New",0,0,0 GB2312=100,"MS Hei",134,0,0 BIG5=100,"MingLiu",136,0,0 KSC5601=100,"GulimChe",129,0,0 Georgian=100,"BPG Courier New U",0,0,0 [BufferSelector] column=117,65,100,320 1280x1024=(170,443)-(728,736),1 [header] 1="%F%l%r%:w, %0d %:m %Y %0h:%0M:%0s" 2="%f%l%r%:w, %0d %:m %Y %0h:%0M:%0s" [footer] 1="- %p -"
月ごとにテーマを決めて文章を書く、というのを何年か続けるとあとから俯瞰したときに面白いのではないか、と書いてあったのを見かけてまねしようと思って、先月は webサービスについての長々しい文章を書きました。
そして1月はエディタについて書く月。ということに決めておくことにしようと思います。
エディタについて一番迷走しているのがこの MacBook 環境。あれこれとつまみ食いを試したあげくに、最近ようやく Carbon Emacs とつきあってみようかと言うことにしていますが、設定に悪戦苦闘しています。という文章を書いているのが Carbon Emacs なのですが、まさにたった今、ものの見事に落ちました。落ちましたがバックアップファイルがあったおかげで若干の文章が消えただけですみました。他のエディタのことを書いていた途中だったのですがなにか気に入らなかったのでしょうか。それは不明です。
MacBook にインストールしてあるエディタはほかにもいろいろあります。
あと最近気になっているエディタとしては「TextMeta」で、日本語入力さえ諦めれば、とオススメされていたので気が向けばこれもインストールしてみると思います。Mac エディタに今何より求めているのは安定性とフォント設定のシンプルさ。それと FTP クライアントの Cyber Duck と連携してくれるとなお嬉しい、というぐらいです。というのは拡張で何でもありありな Emacs がとりあえずのメインの位置に今納まっているからなので、サブとして使えるエディタに収まってくれるエディタを探しています。
Amazon がまたしても送料無料のキャンペーンをやっています。
「2010年1月8日(金)0時00分から2010年3月31日(水)23時59分(日本時間)までに確定した、Amazon.co.jpが販売、発送する全商品のご注文」が文庫一冊、ケーブル一本なんでも送料無料。ゴミを捨てる手間さえめんどくさがらなければ、Amazon のポイントもたまるし、クレジットカードのポイントもたまる人もいるだろうし、なかなかお得で便利なキャンペーンです。
誰かが言っていましたが、送料無料で嬉しいところはメール便で来るぐらいの買い物ならいちいち宅配便の人から手渡しで受け取らなくて済むことですね。時間指定で配送してくれるとは言ってもその時間帯のどこにも家にいないよという一人暮らしの人なんかには便利です。
xyzzy の irc-mode で TwitterIrcGateway を使う場合、のデフォルトの文字コードでは文字化けはおきないのですが、UTF-8 にした場合や、同じく opentig.net (デフォルトの文字コードが UTF-8)に接続すると投稿が文字化けしていた現象がようやく直ったので記録をかねてメモしておきます。
エンコーディングが通常の *encoding-utf8* では駄目で、*encoding-std-utf8n* を使うというところが重要というかここで躓いていました。*encoding-utf8* とどう違うかというと、utf8n の n の部分が「Unicode signatureなしのUTF-8」で、std とついているのは「Windowsの変換表ではなくUnicode Consortiumが配布している変換表を使用する」ということのようです。(~/html/OChangeLog.html 参照)
そんでもって肝心の設定については、Twitter のopentig.net の場合 ~/.irc にこんな感じで記述。
(defvar *irc-server* "opentig.net") (defvar *irc-port* 16668 "irc: ポート番号") (defvar *irc-nick* "ついったーのID" "TwitterID") (defvar *irc-realname* "ついったーのIDまたはメールアドレス" "TwitterID") (defvar *irc-pass* "ついったーのパスワード" "Twitterパスワード") (defvar *irc-incode* *encoding-std-utf8n* "irc: 入力文字コード") (defvar *irc-outcode* *encoding-std-utf8n* "irc: 出力文字コード")
またはこんな感じに書いておくと、M-x irc-mode 、M-x irc::opentig で接続できます。接続するサーバをあちこち切り替えるならこっちのパターンで複数書いておくと便利。ただし、xyzzy を複数起動しない限りは一度に複数のサーバには接続できない(と思う)。
(defun opentig () (interactive) (setf *irc-server* "opentig.net") (setf *irc-nick* "ついったーID") (setf *irc-port* 16668) (setf *irc-realname* "ついったーID") (setf *irc-pass* "ついったーパスワード") (setf *irc-incode* *encoding-utf8*) (setf *irc-outcode* *encoding-std-utf8n*) (irc-connect))
自前で TwitterIrcGateway をホスティングして使っているよという人は、*irc-server* とか *irc-port* とか、さらには *irc-incode* と *irc-outcode* を良いように書き換えてください。ローカル環境なら *irc-server* は localhost、エンコーディングはTIGで特に変更指定していなければ指定しなくても大丈夫です。(指定する場合には両方とも *encoding-jis*)
xyzzy の irc-mode で Twitter を眺める一番のメリットは自在なウィンドウ分割。作業中のウィンドウの下に Reply だけを表示したり、通常タイムライン、チャンネル A,B,C... と同時に複数の異なるタイムラインを一覧できるのは他のクライアントにはちょっとない機能なんじゃないかと思います。
M-x opentig と書いていたのを M-x irc::opentig に修正。