Hatena::ブログ(Diary)

(define -ayalog ’()) このページをアンテナに追加 RSSフィード

2012-01-12

Emacsにtc2入れた後に検索(インクリメンタルサーチとか)できなくなっちゃった時の解決法

最近何故かインクリメンタルサーチできなくて「Emacs使えないよー('A`)」ってなっていたんですがやっと解決できたのでまとめておきます。
(正直Emacs使いの人ならこんなの悩むこともないのでしょうが…)



僕の環境を先に書いておくとwinXPGNU Emacsインストールしてあってその上にtc2をかぶせてあります。

GNU Emacs
Emacs Downloads
T-codeいいよ、T-code!!
tcode Downloads


そんな環境でC-sを使おうとしたら何故か

Symbol's function definition is void: isearch-last-command-char.

怒られた…。

「isearch-last-command-char」?これはコマンドのことだろうか?

M-x isearch-last-command-char

反応無し…。Emacsのクイックリファレンスでとりあえず検索してみるも…ない…。

もう初心者Lisperにはなんのことか良くわかりません。
とりあえず、「isearch-last-command-char」ぐぐった。
あんまり参考になるサイトがなくてしかも意味不明(すいません)だったので泣きかけてましたが、幾つか気になるワードがあることに気付く。

「isearch-last-command-char 対策」「tc2」


あーあー…tc2のせいですか?
ということでこちらを参照→r46 tcode
原因らしきものも発見できたので早速修正。
tc2の.elファイルを探して…。

/lisp/tc-sysdep.el

を修正します。

まぁ行番号とかはそんまんま参照すればいけると思うのであんまり細かく書きませんけど。

;;(if (string-match "^\\(19\\|2[01]\\)" emacs-version)
(if (string-match "^22\.3" emacs-version)

上記のように修正したらOK。
ちなみに修正しなくてもT-codeモードをONにしていれば問題なく使えますが、OFFのときにエラー出るみたいなんでやっぱこの修正は必要かも…。

後は、今日調べたことまとめ。

所謂elisp。バージョン情報を返してくれる。

偽だとnilを返してくださる。真はそれ以外。

ちなみに…

(if (string-match "^\\(19\\|2[012]\\)" emacs-version)

でも通るんだけど"^\\(19\\|2[012]\\)"これをどう解釈したのかが理解できなくて良く分からないでいるので誰かヘルプミー('A`)
正規表現だと分かったので問題なく終了ー

2011-12-21

漢直練習記lesson1

今日から日経新聞の適当な記事をひらって、漢直で書くテスト。
長すぎず短すぎず、毎日の積み重ねかなぁと。

米オラクル、17%増益 9〜月期ソフト新規契約伸び悩む

IT(情報技術)大手の米オラクルが20日発表した1年9〜月期決算は、売上高前同比2%増87億9万ド約65円純利だった。
サーバなど機器販売が落ち込み、主力の業務用ソフトウエアも新規契約が伸び悩んだが保守契約が堅調で利益を伸ばした。
1株当たり利分は0.43ドルだった。増収の決算が、売上高ともに、証券アナリストの事前予想平均を下回ったため、20日米株式市場時間外取引オラクルは売られ同社の株価は一時10%以上落ち込んだ。

売上高を製品・サービス別にみると、主力のソフト販は7%増60億34万ドル。そうち新規契約2%増、契約更新・サポートが9%増えた。ハードウエア販売は10%減の5億78万ルそのうち、製品14%減サポート契約は2%減った。

2011-12-05

T-codeを入れてみよう。とりあえずWindows、GNU Emacsに導入してみるテスト。


突然ですが、問題です。
「kdjd;sjdkd;s」読めましたか?読めませんね。
じゃあ、Emacs上でT-codeが使えるようにtc2をインストールしましょう!!

まずはDLしましょう。
tcode -> 目的はtc2なので漢直ではありません。
tc-2.3.1.tar.gz -> 直接DLできるパスです。

4 Windows でのインストール

Windows でのインストールは次のとおりです。
以下では ~ でホームディレクトリ(.emacs のあるフォルダ)を表します。

(1) ~ に emacs ディレクトリを作成し、その下に lisp ディレクトリ
とtcodeディレクトリを作成します。
(M-x make-directory [RET] ~/emacs/lisp [RET]
M-x make-directory [RET] ~/emacs/tcode [RET])

(2) tc2 の lisp ディレクトリの中身を ~/emacs/lisp ディレクトリに
すべて copy します。
また、tc2 の etc ディレクトリの EELLLTXT
(TUTコードの場合はEELLLTXT.tut) と bushu.rev・symbol.rev を ~/emacs/tcode
ディレクトリにコピーします。
tc2 の mazegaki ディレクトリの中身もすべて ~/emacs/tcodeにコピーします。

(3) 上記(2)でのlispファイルのコピー先のディレクトリで、tc-pre.el を
編集します。「(defconst tcode-site-data-directory」の次の部分を、
現在のディレクトリ名(~/emacs/tcode/)に書き換えます。
ディレクトリ名の最後は「/」で終わるようにしてください。

(4) MS-DOS プロンプトで、(1)で作成した~/emacs/lisp ディレクトリに
移動します。その後、
mule.exe (Mule for Windows の場合) または meadow95.exe
(Meadow で Windows 9x の場合) または meadownt.exe
(MeadowでWindows NTや2000などの場合)を用いて以下のように入力します。

> mule.exe -batch -q -no-site-file -l make-elc tc.el

「Loading tc.el...」から始まって「Done」で終われば正常です。
その間に表示されるメッセージは無視してください。

上の tc.el の部分を順に以下のファイルに変えて、同様に実行します。

tc-help.el, tc-bushu.el, tc-mazegaki.el, tc-util.el,
tc-tbl.el, tutc-tbl.el, eelll.el, tc-is19.el

なお、この(4)は必須ではありません。
ただし、行った方が処理速度が向上します。

(5) MS-DOS プロンプトで、(1)で作成した~/emacs/tcode ディレクトリに
移動します。その後、(4)と同様に、次のコマンドを実行します。

> mule.exe -batch -q -no-site-file -l mk-mzdic

(6) ~/.emacs に以下を追加します。

(setq load-path (cons "~/emacs/lisp" load-path))
(require 'tc-setup)


DLした中身のINSTALLファイルからWindowsへの導入方法を抜粋。
というかとりあえず、これでEmacs上で動きます。
(ただし、WindowsのGNU Emacsでしか確認していません。)

EELLL(うなぎぎぎ)を早速動かしてみます。

Emacsを起動させて

M-x eelll

これでEELLLが使えますよっと。とりあえず、僕はこれで練習中。

最初は「の、が、のが」をずっと繰り返し入力させられます。習うより慣れろ!


追記:
手順(4)(5)は飛ばしても問題ないです。