SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|

2005-04-11(Mon) TrueLegacyGraphics参上!!

  ココんトコ、アレコレとEmacsをイジり回している。いやなにmicroEmacsならX68K時代から使っているし、Windows上で愛用しているエディタもEmacs風キーバインドにしているし、窓使いの憂鬱も常に常駐させていたりするので、いまさらカーソル移動で手がツッたりしているワケではない。少し自分風のカスタマイズを加えている程度……というか、逆にオイラはこれまでTeraTerm(SolarisやCygwin)上でEmacsを使うのは敢えて避けていたのだ。

  というのも、職場でプログラムを作るときはSolaris上で行うことが多いので、viに指を慣らしておくコトが必要だったのだ。オイラは「viは使っても心はEmacs」という考えなので、ある程度viを使い慣れた今も、viは非常にうっとおしいエディタだという認識は変わっておらず、この4年間あまり積極的にviのコマンドを覚えてこなかった(今でも'c'さえ使わないし)。しかしながら、それでもその環境に慣れてきてしまったため、気がついたらプライベートでコードを書くときもCygwin上でviを使っていた……うわ、最悪やッ!!

  しかし、今後Linuxな仕事をするならば、viを強要される環境からオサラバできるワケだ。そんなら、早いトコ自分の指に合わせた「.emacs」を作っておくべきだし、少しはEmacsLispもカジっておくべきだ。なんといっても、マルチバッファ、マルチウィンドウ、キーボードマクロ、インクリメンタルサーチは強力な味方だし、気に入らなければ自分でマクロを作ってしまえばよいのだ。ヒャッホゥ!!

  とゆーワケで早速カスタマイズ。X68系emacs野郎特有の(?)キーバインドを追加する。

(global-set-key "\C-h" 'delete-backward-char)
(global-set-key "\C-z" 'scroll-down)
(global-set-key "\M-\C-z" 'scroll-other-window-down)
(global-set-key "\M-g" 'goto-line)

  やっぱり、各行の頭に行番号を表示したいので、なんとかマクロを探してきて追加。

(require 'wb-line-number)
(wb-line-number-toggle)
(setq truncate-partial-width-windows nil)

  オイラは優柔不断なので、アンドゥ、リドゥは必須だ。これもマクロを探してきて追加。

(require 'redo)
(global-set-key "\C-xu" 'redo)

  どーしても、ワンキーでサクサクとバッファ切り替えがしたいのだが、どーやらそーゆー機能はないらしい。んじゃ、作ってしまえ!! ということで、いまさらではあるがLispデビューである。オイラの初めてのLispコードだ。インデントのつけ方さえワカっとらんが、笑うな!!

(global-set-key "\C-j" 'switch-to-last-buffer)
(defun switch-to-last-buffer (arg)
    "Switch to last normal buffer"
    (interactive "p")
    (dolist (b (buffer-list))
        (
            if(string-match "*" (buffer-name b))
                () (setq last-buffer b)
        )
    )
    (switch-to-buffer last-buffer)
)

  これだけでもかなり使いやすくなったのだが、emacsを起動するつもりでviを起動してしまったり、emacsって打つのが面倒だからって、emというエイリアスを作ったら、rmと間違えて2回もファイルを消してしまったり……しばらくは指も頭もトッチラかりそうである。

  画像の説明 画像の説明

  それはそうと、以前に作ったイニシエのグラフィック描画関数ライブラリLegacyGraphicsであるが、なんとなくTkを使ってホントのグラフィックを扱えるようにしてみた。その名もTrueLegacyGraphics。メソッドは以前のLegacyGraphicsと同様のものを用意したので、頭のrequireにTrueを追加するだけで以前のプログラムはそのまま動作する。素晴らしきかなオブジェクト指向、である。

  画像の説明

  なんとなく、以前のCurse版のLegacyGraphicsにもlineメソッドを追加してみたりしたが、やっぱりグラフィック画面のがイイ。グラフの説得力が圧倒的に違う(あたりまえか……)。思わず嬉しくなって、昔のパソコンのサンプルデモにありがちな絵を出してしまう。ウハウハ。というワケで、ファイル一式を置いておこう。

  「プロッタの完成を放り出してナニしとんじゃ!!」と、いうなかれ。実はコレにも深い意味があるのじゃ。それよりも問題なのは今週末の日曜日が情報処理試験の試験日だというコト。今回、データベーススペシャリストにエントリーしてるのだが、データーベースはナチュラルにサッパリの状態なのだ。あぁ、ヤバい。少しくらいは勉強しなきゃ……というコトでこれからしばらくの間ブログの文章は少な目にするのでヨロシクである。