Linux Diary Linksというのもある模様。 メモメモ。
またまた gtags.el を改造してみた。 今回の改造ポイントは以下の通り。
ちなみに、auto-hungry-stateは「{」を入力すると、自動的に改行して次の行で適切なインデント位置に自動的にジャンプするとか、「;」を入力すると、自動的に改行して次の行のインデント位置に移動するなどなど、すげーおせっかい(汗)なモードのこと。
既に c-modeになっている場合なら、 M-x c-toggle-auto-hungry-state で<おせっかいモード>のON/OFFを切り替えられる。
さらに蛇足。 <おせっかいモード>ぢゃなくても、c-modeならCtrl J と入力すれば、改行してから適当なインデントをつけてくれたり。
以下、global-3.53に付属のgtags.elに対する差分。
--- gtags.el 1999/09/30 16:17:35 1.6
+++ gtags.el 1999/09/30 16:20:59
@@ -61,24 +61,32 @@
"Gtags read only mode")
(defvar gtags-mode-map (make-sparse-keymap)
"Keymap used in gtags mode.")
+(defvar gtags-mode-override-map (make-sparse-keymap)
+ "Keymap used in gtags mode(override current keymap).")
(defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)
"Whether we are running XEmacs/Lucid Emacs")
-(define-key gtags-mode-map "\et" 'gtags-find-tag)
-(define-key gtags-mode-map "\er" 'gtags-find-rtag)
-(define-key gtags-mode-map "\es" 'gtags-find-symbol)
-(define-key gtags-mode-map "\eg" 'gtags-find-pattern)
-(define-key gtags-mode-map "\el" 'gtags-find-file)
-(define-key gtags-mode-map "\ec" 'gtags-make-complete-list)
-(define-key gtags-mode-map "\C-]" 'gtags-find-tag-from-here)
-(define-key gtags-mode-map "\eh" 'gtags-display-browser)
-(define-key gtags-mode-map "\C-t" 'gtags-pop-stack)
-(define-key gtags-mode-map "\e." 'etags-style-find-tag)
-(if (not running-xemacs) nil
- (define-key gtags-mode-map 'button2 'gtags-find-tag-by-event)
- (define-key gtags-mode-map 'button3 'gtags-pop-stack))
-(if running-xemacs nil
- (define-key gtags-mode-map [mouse-2] 'gtags-find-tag-by-event)
- (define-key gtags-mode-map [mouse-3] 'gtags-pop-stack))
+
+; set key to keymap
+(defun gtags-setup-keymap (keymap)
+ (define-key keymap "\et" 'gtags-find-tag)
+ (define-key keymap "\er" 'gtags-find-rtag)
+ (define-key keymap "\es" 'gtags-find-symbol)
+ (define-key keymap "\eg" 'gtags-find-pattern)
+ (define-key keymap "\el" 'gtags-find-file)
+ (define-key keymap "\ec" 'gtags-make-complete-list)
+ (define-key keymap "\C-]" 'gtags-find-tag-from-here)
+ (define-key keymap "\eh" 'gtags-display-browser)
+ (define-key keymap "\C-t" 'gtags-pop-stack)
+ ;(define-key keymap "\e." 'etags-style-find-tag)
+ (if (not running-xemacs) nil
+ (define-key keymap 'button2 'gtags-find-tag-by-event)
+ (define-key keymap 'button3 'gtags-pop-stack))
+ (if running-xemacs nil
+ (define-key keymap [mouse-2] 'gtags-find-tag-by-event)
+ (define-key keymap [mouse-3] 'gtags-pop-stack)))
+
+; setup gtags-mode-map
+(gtags-setup-keymap gtags-mode-map)
(defvar gtags-select-mode-map (make-sparse-keymap)
"Keymap used in gtags select mode.")
@@ -385,7 +393,9 @@
;; move to the context
(if gtags-read-only (find-file-read-only file) (find-file file))
(goto-line line)
- (use-local-map gtags-mode-map))))
+ (setq gtags-override-mode-map (copy-keymap (current-local-map)))
+ (gtags-setup-keymap gtags-override-mode-map)
+ (use-local-map gtags-override-mode-map))))
;; make complete list
(defun gtags-make-complete-list ()
@@ -407,7 +417,9 @@
(defun gtags-mode ()
"Minor mode for browsing C source using GLOBAL."
(interactive)
- (use-local-map gtags-mode-map)
+ (setq gtags-override-mode-map (copy-keymap (current-local-map)))
+ (gtags-setup-keymap gtags-override-mode-map)
+ (use-local-map gtags-override-mode-map)
(run-hooks 'gtags-mode-hook))
;; make gtags select mode
結局のところ、use-local-mapをする前に、現在のローカルキーマップをコピーして、そこにgtags-mode用のキー定義をおこなうようになるだけの差分だったりして。
残る野望は etags.el の visit-tags-table (参照するTAGSファイルを切り替える)に相当する機能がgtags.elにも欲しいかな〜ってトコロ。
ページ内検索だけど、結局 jcode.pl を使う方式に戻したり。
出力をパイプしたら、www.yk.rim.or.jpのキャッシュサーバがタイムアウトしか返してこなくなった………。
でもって、さらにタイムアウト回避のため、検索にマッチしなくても、無駄な返答(コメント)を返すよーにしてみたり………。
かえって遅くしてるぢゃん。
をを。やってしまいましたね。
da0の先頭512バイトを潰してしまった時の復活方法が書いてあったのでメモメモ。
そーいや、一度もdisktabを手で書いたことないや。 (128MO や 230MOのエントリは、od-driverのドキュメントからコピーしたことはあるけど。) 潰しても良いディスクができたら、試してみよーっと。
それにしても、da0==od0ってゆーのは絶対間違っていると思う今日このごろ。
ついふらふらと買ってしまった。
本当はIBM WorkPad c3の方が気になっていたんだけど、液晶の解像度がPI-6500よりも上がっていて(igetiは320x240)、4色グレースケールな画面に負けて購入。
これぞまさしく衝動買いだ。
秋葉原に行って、AthlonベアボーンキットをT-ZONEミナミにて購入。
ベアボーンキットを指さして「これください」と言ったら、店員さんが店内からパーツを一つづつ拾っていたのが印象的だった。
そんなわけで、ケース、電源は全部AMD社認定とゆーガチガチな構成。
「冒険心が足りない」って言われちゃうかな。
いろいろな店でケースを物色したんだけど、「Athlon対応」ってシールが貼ってあったのはSoftmapだけで、しかも「Athlon対応」シールが貼ってあったケースはひとつだけだった。 Athlon用ケース&電源選びはなかなか大変だと思った次第。 ふつーの人がAthlonを組む場合の一番の障害になるやもしれづ。
で、その他ザウルスアイゲティ用のクレードルとか、携帯電話用ケーブルなどなどを購入。 なんだか壊れ風味な散財具合い。
結局、パーツを買っただけで満足してしまって組み立てていなかったり。
土曜日は睡眠。
日曜と月曜の朝はちと所用にて使用不可だった。
そんなわけで、月曜の夕方からAthlonマシンの組み立てを開始。
ケースはAMD推奨という、考えようによってはレア物なミドルタワー。
側版のみ外れるようになっているタイプのケースで、5インチベイは専用の金具をCD-ROMドライブに取りつけてから、スロットインするようになっていた。
(実は、専用金具の使用方法でちと悩んだ……。)
ケースの側面中央に、横向きの梁(とりはずし不可)があって、ちょっぴり邪魔な印象。
梁の裏側に隠れている3.5インチシャドウベイは、ネジ2本で丸ごと取り外せるようになっているので、梁の影響は思ったよりも少なく、HDD交換の時にはかえって便利かもしれない。
珍しいのはケースくらいなもので、あとはAthlon 500MHz, MSI-6167, RIVA TNT2とごくふつーのパーツ。
とりあえず組み立てて、Windows98 SEをインストール。
なんとなく動いているようだ。
今日のところはこれでおしまい。
WanderlustのMIME機能(ファイル送信)をはじめて使ってしまった。 普段ファイルを送る場合は tar + gzip + uuencode で送るんだけど、今回は特例で上の方法は使えないのだ(汗;)。
| ^c ^x ? | MIME操作のヘルプ表示 |
| ^c ^x TAB | バイナリファイル取り込み |
でもって、送信はできた模様だった。
自分にbccしたメールから、Wanderlustを使って添付ファイルを復元できてたし。
でもでも、相手側のBackey!ではうまく添付ファイルが展開できなかった模様。
ううむ。
近所のコンビニで見掛けたときに話題になっていたのを思い出してゲッチュ。
確かに「すっきりした甘さ」。
だけど、なにかこう〜、飲んだ後に胸が苦しくなるような………。
私も(カルーアミルク大好きとゆーくらい)甘党なんだけど、森永キャラメルドリンクには負けました。