1read 100read
2012年3月UNIX138: エディタ作ったよ!見てみて! (229) TOP カテ一覧 スレ一覧 2ch元 削除依頼
Apache関連 Part11 (818)
動画編集ソフト (200)
UNIXサーバ管理者の憂鬱 (811)
サン・マイクロシステムズはいかがですか?3 (164)
マイナーハードにオープンソースOS入れてる奴は (110)
UNIXサーバ管理者の憂鬱 (811)

エディタ作ったよ!見てみて!


1 :01/12/14
http://www.geocities.co.jp/SiliconValley-Cupertino/3751/grapad03.tgz
コンソール上で動く、GRAPADという名前のエディタをつくっています。
僕自身初心者なので(UNIX歴半年)、まだまだ未熟ですが、これからもっと
いろいろな機能を付けていきたいと思っています。
cursesを使って、メニューやダイアログボックスも使えますから、難しい設定はいりません。
以下の環境でコンパイルと実行を確認しました。
VineLinux2.1.5のGnomeターミナル
VineLinux2.1.5のコンソール
RedHatLinux7.1のGnomeターミナル
FreeBSD(98)4.3のコンソール(ダイアログの枠線が化けます)

2 :01/12/14
コンパイルと実行の方法は、
#tar -zxvf grapad03.tgz で展開して、
#cd grapad03 でディレクトリに入って、
#make とやると、実行ファイルができます。
#./grapad で実行できます。

3 :01/12/14
ソースを参考にしようと思ったんだけど、
C++をC風に書くなよダセェ
よって、viできまり。こいつはゴミ。

4 :01/12/14
>>3
それで、動かしてみてくれましたか?
ちゃんとコンパイルできますか?

5 :01/12/14
批判するだけなら猿でも出来る。
とりあえずKondara 2.1 Beta2でコンパイルが通ることを確認。
Tera Termから起動したら「白黒端末では使えません。」
と言われたので試してない。

6 :01/12/14
>>5
curses が $TERM を見てんのかな?

7 :01/12/14
>>5
ありがとうございます!!
基本的にカラーで表示する事を前提にしているので、
白黒だと起動できません。
強調表示とか検索とか、あとショートカットキーとか、
とりあえず書いただけで使えない機能がまだあるので、
その辺は文句言わないでください。
とりあえず今は検索機能を作るため、BM法とKMP法という
アルゴリズムを勉強しています。

8 :01/12/14
ktermでちゃんと動いたよ。
gnome-terminal では動かなかったです。当方turbo
readmeでは動くらしいんだけど、
がんばれー

9 :01/12/14
>>5
いや、フィードバックもしようと思って今Makefileを
マクロ使って書き直してたんだけど、なんかエラーになるからやめた(笑)。
FreeBSD 4-STABLE, コンパイル通ってkterm上でさらにscreenの上で動いたよ。
F2押してもキーコードが入るだけだったけど。Alt+F2か?

10 :01/12/14
えーとですね、ktermでも動くんですけど、ファンクションキーがだめなんですよ。
本当はメニューはalt+何かで選べるようにしたいんですけど、
altキーの入力を知る方法がわからないんです。

11 :01/12/14
FreeBSD(98)4.3でコンパイル通ったしbetermで動いたよ。
枠がおかしいのかどうかは確認してないけど。
ただbeterm自体が日本語通らないからメニューに何が書いてあるやらさっぱり。
勘で終了させた。英字表記が理解しづらいよ。sageが何かまだ分からない。

12 :01/12/14
Vine-2.1 LinuxPPCでコンパイルしました。
コンパイルはうまくいったと思います。実行ファイルは出来てるので(何せ初心
者なもので良く分からない)。
でも
./grapadをすると
zsh: segmentation fault ./grapad
でうまく行きません。grapadを実行後lsコマンドを実行すると表示が滅茶苦茶に
なります。
kterm、xterm、gnome-terminalで駄目でした。
うーん。何がいけないんだろう。
『初心者にはお勧めできない』
ですかね・・・シュン・・・

13 :01/12/14
segmentation faultはこちらのバグです。
メモリの変な領域にアクセスすると出るようです。
本当は僕も含めて、初心者が使いやすいように作ったんですがね…

14 :01/12/14
あと、メニューのageとかsageとかは気にしないで下さいw
ショートカットキーの表示をしてあるのですが、まだその機能が無いので
適当に書いてあるだけです。

15 :01/12/14
記念きねん
がんばってvi,emacs越えてな。

16 :01/12/14
ktermの問題は
termcap (この場合は terminfoか) が知っているファンクションキーの
シーケンスと実際のシーケンスが違うせいだと思う。
cat とかやって、ファンクションキーを押して生のシーケンス見てみ。
infocmp kterm とやって出てくる値と違うだろ。
解決方法はしらないけど、
terminfo を書き換えるってのが妥当じゃないかね。
それと、ktermではXresourcesにこれを追加しとけ:
KTerm*VT100*EightBitInput: false
これで Alt+ほげ が ESC + ほげ のシーケンスで送られるようになる。

17 :01/12/14
>>1みたいな人はなんか応援したくなる。
頑張ってくださいね。

18 :01/12/14
Debain GNU/Linux 3.0 でコンパイルできました。
Eterm + screen 上での動作も確認しました。
ただ、いったん F2 でメニューを開いたときに、抜けよ
うとしてやみくもに ESC を押したら segmentation fault
でオチてしまいました。
原因は editor.cpp:277 の
else if (n->next->c[0]==EOF)
の部分で n->next == NULL であるためのようです。
ちょっと時間がないので前後を読んでいる暇がありません。
すいません。
あとこれはお願いなのですが、makefile 内で gcc とハード
コーディングするのではなく、
CXX=gcc
としておき、
$(CXX)
で参照するようにしていただけるとうれしいです。

19 :01/12/14
Solaris8 IA+gcc3.0でやってみた まずmakefileの"gcc"となってる
ところは"g++"にしとかないとリンクで失敗するので(゚д゚)マズー
で 起動すると いきなりSIGSEGV......バックトレースは
#0 0xdfa9999e in wmove () from /usr/lib/libcurses.so.1
#1 0x804a37f in _ZN7CEditor7RepaintEv (this=0x8047990) at editor.cpp:336
#2 0x8049952 in _ZN7CEditor5StartEv (this=0x8047990) at editor.cpp:132
#3 0x8049177 in main (argc=1, argv=0x8047b5c) at grapad.cpp:50
そこでとりあえず
----------------------------------------------------------------------
--- editor.cpp~ Fri Dec 14 01:11:09 2001
+++ editor.cpp Fri Dec 14 03:52:14 2001
@@ -333,11 +333,13 @@
    }
    //デバッグ用
+    if (sttwnd) {
    wmove(sttwnd,0,0);
    wattron(sttwnd,COLOR_PAIR(COLOR_MENU));
    wprintw(sttwnd,"X%d Y%d MX%d Key%X Scrl%d current:%c(%X)", curx, cury ,curmx,
        imkey,scroll, buf.GetCurrent()->c[0], (unsigned char)buf.GetCurrent()->c[0] );
    wrefresh(sttwnd);
+    }
    //画面更新
    if(showliner)liner.Repaint(scroll);
----------------------------------------------------------------------
ってな感じでやり直したら 最初の表示は出てきたけど 文字入力してない状態で
下向きカーソルキーを押したらまたSIGSEGV......(>>18と同じところか)
#0 0x804a0f2 in _ZN7CEditor7RepaintEv (this=0x8047990) at editor.cpp:277
277               else if( n->next->c[0]==EOF ){
#1 0x8049ce7 in _ZN7CEditor5StartEv (this=0x8047990) at editor.cpp:209
#2 0x8049177 in main (argc=1, argv=0x8047b5c) at grapad.cpp:50
一応文字入力等はできて "./grapad readme.txt"とやるとreadme.txtを
オープンできるけど スクロールさせると日本語が文字化けする
......とりあえず頑張って......

20 :01/12/14
>>16
Alt+ほげ って本当は [0x80-0x9F] (C1 control code) で、
8bit 通らない場合は [ESC] [0x00-0x20] だったような。
最近は違うのかな。
まぁ多くの実装は ESC XX なんだけど。

21 :01/12/14
ttp://www.factory.gr.jp/~ishigaki/old_diary/199905.html
を参考に以下のように書き換えて
FreeBSD 4.4 + Tera Term Pro で (゚д゚)ウマー
# op が2つ以上あるとか変なのはURLのページにあったままです
# AX,GO って何の capability でせうか?
teraterm|TeraTerm|TeraTermPro console:\
:pa#64:Co#8:AF=\E[3%dm:AB=\E[4%dm:op=\E[x:\
:AF=\E[3%dm:AB=\E[4%dm:op=\E[m:\
:AX:G0:\
:eA=\E(B\E)0:as=^N:ae=^O:\
:kb=^H:kN=\E[6~:kP=\E[3~:kh=\E[[2~:@7=\E[[5~:\
:tc=vt200:
確認ですが、>>1 は home(kh), end(@7) はサポートしてないですよね?

22 :01/12/14
本題と外れるんで sage ですが……
FreeBSD っていつになったらまともな termcap になるんだろ。
NetBSD とかが使ってる http://www.tuxedo.org/~esr/terminfo/
あたりの使えばすむと思うんだけどなぁ… esr 嫌いなのかな?(w

23 :01/12/14
FreeBSDのeeみたいな感じだね〜

24 :01/12/14
「秀丸 for Unix ほしい」って声がけっこうあるから、
そういうの目指したら?

25 :01/12/14
>>20
kterm上からximで日本語入力すると C1 control code は
日本語文字になっちゃうのよ。
日本語入力しないなら (emacsみたく自前でIM持つとか) 別にいいんだけど
たぶん>>1の様子だとそうじゃなさそう

26 :01/12/14
テスト環境 : TeraTermからVine1.1へログインして使用
Makefile
(1)g++に変更しないとコンパイルできなかったよ
(2)common.oのルールがないよ
grapad
(1)F2が効かないので保存できない...
(2)メニューを英語にしてくれたらうれしい(普段SJIS環境にしてるもんで)

27 :01/12/14
>>20
> Alt+ほげ って本当は [0x80-0x9F] (C1 control code) で、
> 8bit 通らない場合は [ESC] [0x00-0x20] だったような。
Control+ とごっちゃになってますな。
本来は Alt+ほげ は 7bit char の 8bit 目を立てたコードを生成し、
Control+ほげ は -0x20 したコードを生成します。
端末環境によっては 8bit 目が通らないケースが多いので、
そういう場合はエスケープしたシーケンス(ESC が使われることが多い)を
生成しますが、実装依存ですし、端末の設定で変更す可能なことも多いです。
X 上のアプリケーションではそういう制約はないのですが、
端末エミュレータなどは得られたキーコードを文字コードもしくは
文字シーケンスにマッピングするのでその過程で同様の縛りが発生します。
例えば以下のように入力が流れる時、各過程で変換が発生します。
この変換は特殊な文字をエスケープするような変換ではなくて、
全ての文字を別の写像にマッピングするような変換だと思っておいた方が
いいでしょう。
キーボード→X→端末エミュレータ→curses→エディタ
ちなみにファンクションキーを適当な文字シーケンスとして表現するのは
端末エミュレータの担当。その文字シーケンスを解釈するのは curses の担当に
なります。

28 :01/12/14
手軽にthread処理の出来るマクロ言語を搭載してクレー。
しかし、これから エディタに言語載せるとしたら、なにのせる?
guile あたり使っとく?

29 :01/12/14
Solaris7 SPARC + gcc + kterm でコンパイルしてみたんですが、
まず makefile がちとまずいような気がする。
begin 644 makefile
M4DT@("`@(#T@<FT@+68*14-(3R`@(#T@96-H;PI#0R`@("`@/2!G8V,*0T9,
M04=3(#T@+4\*3$9,04=3(#T@+6QN8W5R<V5S"@IA;&PZ(&=R87!A9`IG<F%P
M860@.B!C:&%I;BYO(')E<VES=&]R>2YO(&UE;G4N;R!E9&ET;W(N;R!G<F%P
M860N;R`*"20H0T,I("0H3$9,04=3*2`M;R!G<F%P860@7`H)8VAA:6XN;R!R
M97-I<W1O<GDN;R!M96YU+F\@961I=&]R+F\@9W)A<&%D+F\*8VQE86XZ(`H)
M0"0H4DTI(&-H86EN+F\@<F5S:7-T;W)Y+F\@;65N=2YO(&5D:71O<BYO(&=R
M87!A9"YO(&=R87!A9"`J?@H*+F-P<"YO.@H)0"0H4DTI("1`"@DD*$-#*2`D
M*$-&3$%'4RD@+6,@)"HN8W!P"@IC:&%I;BYO.B!C:&%I;BYC<'`@8VAA:6XN
M:`IR97-I<W1O<GDN;SH@<F5S:7-T;W)Y+F-P<"!R97-I<W1O<GDN:`IM96YU
M+F\Z(&UE;G4N8W!P(&UE;G4N:`IE9&ET;W(N;SH@961I=&]R+F-P<"!E9&ET
9;W(N:`IG<F%P860N;SH@9W)A<&%D+F-P<```
`
end
こんなのはどう?

30 :01/12/14
二日前にLINUXのインストールを成功させたばかりの超超初心者ですが
イチユーザーとして応援してます!頑張って下さい>>1
理解できるようになったら是非試させていただきます。

31 :01/12/14
こんにちは。なんかいっぱいレスがついていてうれしいです。
makefileについていろいろ書いてもらっていますが、
まだmakeの使い方がよく分かっていないので、勉強したいと思います。
今までずっとVisualC++を使ってきたのですが、違いに結構戸惑っています。

32 :01/12/14
>>29 変数定義にちょっと違和感がないでもないので......
begin 600 makefile.patch
M+2TM(&UA:V5F:6QE?@E&<FD@1&5C(#$T(#$R.C0Y.C,P(#(P,#$**RLK(&UA
M:V5F:6QE"49R:2!$96,@,30@,3(Z-3$Z,3,@,C P,0I 0" M,2PQ.2 K,2PR
M,"! 0 H@4DT@(" @(#T@<FT@+68*($5#2$\@(" ](&5C:&\*($-#(" @(" ]
M(&=C8PHM0T9,04=3(#T@+4\*+4Q&3$%'4R ]("UL;F-U<G-E<PHK0UA8(" @
M(#T@9RLK"BM#6%A&3$%'4R ]("U/"BM,1$9,04=3(#T@+6QC=7)S97,*( H@
M86QL.B!G<F%P860*(&=R87!A9" Z(&-H86EN+F\@<F5S:7-T;W)Y+F\@;65N
M=2YO(&5D:71O<BYO(&=R87!A9"YO( HM"20H0T,I("0H3$9,04=3*2 M;R!G
M<F%P860@7 HK"20H0T,I("0H3$1&3$%'4RD@+6\@9W)A<&%D(%P*( EC:&%I
M;BYO(')E<VES=&]R>2YO(&UE;G4N;R!E9&ET;W(N;R!G<F%P860N;PH@8VQE
M86XZ( H@"4 D*%)-*2!C:&%I;BYO(')E<VES=&]R>2YO(&UE;G4N;R!E9&ET
M;W(N;R!G<F%P860N;R!G<F%P860@*GX*( H@+F-P<"YO.@H@"4 D*%)-*2 D
M0 HM"20H0T,I("0H0T9,04=3*2 M8R D*BYC<' **PDD*$-86"D@)"A#6%A&
M3$%'4RD@+6,@)"HN8W!P"B *(&-H86EN+F\Z(&-H86EN+F-P<"!C:&%I;BYH
I"B!R97-I<W1O<GDN;SH@<F5S:7-T;W)Y+F-P<"!R97-I<W1O<GDN: II
end

33 :01/12/14
むしろ automake/autoconf を使い方を覚えた方がいいかも?
あ、でも素の makefile 書式も知らないとダメか...

34 :01/12/14
起動してすぐ下にカーソル移動しようとするとセグブります。

35 :01/12/14
Makefile は本読まないと無理だよ。本屋へ GO!

36 :01/12/14
>>32
> >>29 変数定義にちょっと違和感がないでもないので......
確かに... すまんす

37 :01/12/14
いまさら、emacs, vim を超えることなど不可能

38 :01/12/14
>>37
越えることが不可能なのは同意だが、
だからといって意味がないとは言えない。
emacsやviのキーバインド覚えるのが嫌な人のための
CUIエディタとなればいい。

39 :01/12/14
道のりは遠そうだけど育っていくのを見てるのは楽しいかも。
でもできるだけ早く最低限の機能を付けてウプするべし。

40 :01/12/14
最近>>29>>32みたいなのよくみるんだけど、これなに?

41 :01/12/14
最近か?
10年前かた見るけど

42 :01/12/14
cygwinで動いたYO.

43 :01/12/14
>>40
最近かよ... 君なんで UNIX 板にいるの? (T-T

44 :01/12/14
>>40
uudecode で復元できる。
45 :あぼーん:あぼーん
あぼーん

46 :01/12/14
別にemacsやviを越えようなんて思ってませんよ。
元々「勉強しなくても誰でもすぐ使える」事を目的につくっていますので
余分な機能とかは今のところつけないつもりですし。
今日は1時間ほどやって、検索機能を付けました。
BM法もKMP法も使わない単純比較ですが、もう最近のCPUだと一瞬なんですね。

47 :01/12/15
>>40
ish のほうがいい?

48 :01/12/15
Vinelinux2.15(だっけかな?)で一発OKダタヨ
>>42
テラタムで動かないからCygwinのXに飛ばして動かしたよ・・・・先にスレ読んでおくんだったよ

49 :01/12/15
GRAPADが完全に動作するのは次の3つを満たす環境です。
・カラーが使える
・ファンクションキーが使える
・日本語が使える
TeraTermの場合白黒端末なので動きません。
無理矢理うごかしてもファンクションキーを受け付けないのでメニューの操作ができません。
キーの入力については今後いろいろ調べてみたいと思うのですが、
とりあえず今は機種依存の解決よりエディタの機能の方を優先して作っています。

50 :01/12/15
>>46
勉強しなくても使えるけど、裏では強力なことしてるってのがいいなあ。
だからインクリメンタルサーチにしたほうがいいかなーと。
migemo を導入してみない?

51 :01/12/15
機種依存というよりOS依存ですね…

52 :01/12/15
less + vi + migemo みたいなの希望。
コンソールでサクサク動くやつがいいな。
# まぁ less して v すりゃ vi 立ち上がるし、
# そういうアプローチが UNIX なんだろうけどさ。

53 :01/12/15
>>52
その条件満すんだったらvi 改造したほうがはやそうね。
C 版の migemo も作られたことだし。
>>1 も migemo 使ってほしいなあ。
正規表現を実装しなきゃいけないから大変かもしれないけど。

54 :01/12/15
>>49(>>1)
>>21 を ~/.termcap に書き込んで export TERM=teraterm でok。

55 :01/12/15
私も c++ で簡単なフリーソフトウェア書き中なのでちょっと見て、
あまりに気持ち悪いので適当に書きかえてた > Makefie
begin 644 Makefile
M(R!M86ME9W)A<&%D(&9O<B!G<F%P860*"B,@QOS+W+CLI,ZELZ7AI?.ER*3/
MQLFD\Z3`I.G!M,GTOL.DMZ3&I,TN"B,@**2]I*:DN:3KI,NDS\[CI*BDT+RA
MI/*\PKG4.@HC(&-P($UA:V5F:6QE($UA:V5F:6QE+F]R9R`F)B!S960@+64@
M)R]>(R]D)R!-86ME9FEL92YO<F<@/B!-86ME9FEL90HC("D*"@HC(*3HI*^[
MR*2FI.*DSJ3/I=ZEKZ7MQ.JUP2X@ON_%Y;SJP\HN(*2_I,"DM[#*LKRDS\6L
MQ?:DRJ3.I,>DHJ3>I.H*(R"_KLW1I+>DRJ2DI.BDIJ3++@IB:6Y?4%)/1U)!
M35,@/2!G<F%P860*"D1%1E,@/0I)3D-,541%4R`]"D-04$9,04=3(#T*(R!C
M*RL@I,ZEO:&\I;FDRJ3.I,<@9RLK(+O(I*8N(&=C8R"DQZ3BLO*\X:2WI,:D
MKZ3LI.NDPZ3=I*2DL:3LI,G)X<3,I,\@3D<*0UA8(#T@9RLK"B,@I.BDK[BK
MI.NEJJ77I;>EYZ7S+B#&PZ3+("U786QL(*3/I,2DL:2_ROVDK*2DI*2D\Z3'
MI,\_"D-86$9,04=3(#T@+5=A;&P@+6<@+4\R"DQ$1DQ!1U,@/2`M;&-U<G-E
M<PI,24)3(#T*"D-/35!)3$4@/2`D*$-86"D@)"A$1493*2`D*$E.0TQ51$53
M*2`D*$-04$9,04=3*2`D*$-&3$%'4RD*0UA83$0@/2`D*$-86"D*3$E.2R`]
M("0H0UA83$0I("0H0T9,04=3*2`D*$Q$1DQ!1U,I("UO("1`"@IG<F%P861?
M1$5014Y$14Y#2453(#T*9W)A<&%D7T]"2D5#5%,@/2`@961I=&]R+F\@8VAA
M:6XN;R!M96YU+F\@<F5S:7-T;W)Y+F\@8V]M;6]N+F\@9W)A<&%D+F\*9W)A
M<&%D7TQ$041$(#T@)"A,1$%$1"D*9W)A<&%D7TQ$1DQ!1U,@/0H*"B,@I+.D
MLZ2KI.FSQJ73I>NER;SJO>?)],JLI,NDQ*2DI,8*"F%L;#H@8G5I;&0*8G5I
M;&0Z(&=R87!A9`H*+F,N;SH*"20H0T]-4$E,12D@+6,@)#P*"B,@I+.DSLGT
MRJRPS<*XM-BWN*3.L-6_WJ2LI.BDKZ3OI*NDZ:2Z+B"BK*3.I,>DI*2DI/.D
MQZ3//PHC961I=&]R7V]?3T)*14-44R`](&-H86EN+F\@;65N=2YO(')E<VES
M=&]R>2YO"B-E9&ET;W)?;U](14%$15)3(#T@;65N=2YH(&QI;F5R+F@@9&EA
M;&]G+F@@<F5S:7-T;W)Y+F@*(PHC961I=&]R+F\@.B!E9&ET;W(N8W!P(&5D
M:71O<BYH("0H961I=&]R7V]?3T)*14-44RD@)"AE9&ET;W)?;U](14%$15)3
M*0HC"20H0T]-4$E,12D@+6,@)#P*"F=R87!A9"YO.B!G<F%P860N8W!P"@DD
M*$-/35!)3$4I("UC("0\"@IG<F%P860Z("0H9W)A<&%D7T]"2D5#5%,I("0H
M9W)A<&%D7T1%4$5.1$5.0TE%4RD*"4!R;2`M9B`D0`H))"A,24Y+*2`D*&=R
M87!A9%],1$9,04=3*2`D*&=R87!A9%]/0DI%0U13*2`D*&=R87!A9%],1$%$
M1"D@)"A,24)3*0H*"F-L96%N.B!M;W-T;'EC;&5A;BUC;VUP:6QE(&-L96%N
M+6)I;E!23T=204U3"FUO<W1L>6-L96%N+6-O;7!I;&4Z"@DM<FT@+68@*BYO
M(&-O<F4@*BYC;W)E"@IC;&5A;BUB:6Y04D]'4D%-4SH*"2UT97-T("UZ("(D
M*&)I;E]04D]'4D%-4RDB('Q\(')M("UF("0H8FEN7U!23T=204U3*0H*+E!(
M3TY9.B!A;&P@8G5I;&0@8VQE86X@;6]S=&QY8VQE86XM8V]M<&EL92!C;&5A
.;BUB:6Y04D]'4D%-4PH`
`
end
それと CEditor class などで constructor や destructor が未定義なのは
なぜ? CEditor::Init() なんて使わず、素直に constructor 定義して使った
方が楽なのではないかと思うが

56 :01/12/15
>>55
Win32(VC++ + MFCだけかも)だと、コンストラクタと初期化関数の
二段階での初期化が定石だったりする。
その癖で…ってところだと思う。

57 :01/12/15
>>56
メモリ以外にリソースを消費するものだけ、なんだけどね
いきなりコンストラクタでハンドル消費したらえらいことに

58 :01/12/15
わ!これすごいねっ!
氏んで!!

59 :01/12/15
neがライバルとなりそうな・・・

60 :01/12/15
ne ってまだメンテされてるの?

61 :01/12/16
Debian Gnu/Linuxです.
起動はしたもののCtrl-cでしか終了できない.
HHKだからFunctionキーが使えないのか?
xevではちゃんと認識してるんだけど..
キーコードが違うのかな?
期待age.

62 :01/12/16
コンストラクタで初期化していないのは、Windowsの頃の癖です。
MFCもそうですし、DirectXなどもそうです。
でも明らかに独立していそうなクラスはコンストラクタで初期化しています。
メニューが開けないという人が多いようですが、
キー処理をもっとちゃんとやれば対応できると思います。
特殊なキーを押すと、^[[@とかいうコントロールコードのようなものが
入力されてくるみたいですが、これを一つずつひろっていけばできそうです。
こういった連続したコントロールコードを一つの文字として解釈するモードが
cursesライブラリに用意されていて、今はそれを使っているのですが、
どうやらあまり信用できないみたいですね。
インクリメンタルサーチやmigemoは、導入するとしても相当あとになると思います。

63 :01/12/17
漏れもエディタ作ったYO!
editor.c
>#include "/dev/tty"
ネタにつきsage
がんばれよー。

64 :02/01/01
応援上げ!

65 :02/01/02
エディタマクロとして perl が使えれば海外でも流行るんじゃないかと思うんだ
けど・・・そーゆーエディタってあんの?
# 国内的には ruby なのかもしれんけど

66 :02/01/02
>>65
あいだをとってPythonというのは?

67 :02/01/02
>>65-66
vimだとperl/ruby/python/tclが使えちゃうんだよねぇ

68 :02/01/02
ここはマニアックにHaskell/Prolog/Smalltalkとか。
関係ないけど、emacsのようなソフトってLispよりもSmalltalkの方が似合うと思うんですけど、どうなんでしょう?

69 :02/01/02
あー、Smalltalk 使えたらかなーりいいかも。
というか、欲しくなっちゃったじゃないか...
まあ、半歩譲って CLOS あたりでもいいや。

70 :02/01/02
> LispよりもSmalltalk
これは言語のことだけじゃなくて、ソフト全体のことです。
「とりあえずSmalltalkでマクロが組めるようにしてみた」とか、
「xyzzy用にCLOSを作った」とか、そういうことじゃなくて。

71 :02/01/03
じゃあSqueakでエディタ造ったらえーやんけ。
仮想マシンだぞ。カスタマイズし放題。
という話に・・・

72 :02/01/03
そしたら WikiWiki しちゃうね。
っていうか、Squeak = Wiki ってイメージが。

73 :02/01/03
emacsやviとはまったく違ったエディタを是非目指してほしい.
emacsやviの亜流をめざしても所詮亜流にしかならないが,
うまくいけば第3の標準エディタになれるかもしれない.
(vi/emacs以外のユーザごめん)
カスタマイズする言語のウケがよければはやるかもね.
ではがんばって!

74 :02/01/04
最近 1 来ないね。

75 :02/01/05
というか、既存のカスタマイズ方法の枠組みを超えてみるとか。
なにげなく使ってるとかってにカスタマイズされてくみたいな。

76 :02/01/05
というか、既存の入力方法の枠組みを超えてみるとか。
なにげなく思ってるとかってに入力されてくみたいな。

77 :02/01/08
というか、既存の開発方法の枠組みを超えてみるとか。
なにげなく煽ってるとかってに開発されてくみたいな。

78 :02/01/08
というか、既存の仕事の枠組みを超えてみるとか。
なにげなく2ちゃん見てるとかってに終ってるみたいな。

79 :02/01/08
というか、既存の人生の枠組みを超えてみるとか。
なにげなく生きていると知らぬ間にってるみたいな。

80 :02/01/09
おぉ〜い!1はどうした!?
俺は、密かに応援してるぞ!
がんばれ〜〜

81 :02/01/09
フラッシュ騒ぎでこの板に来て、Linuxを使ってみようと思っていますが、
>>1さん、その他有志の開発協力者のみなさん、
がんばって育ててください。期待しています。
Windowsなどから流れてきたユーザーに的を絞ってはいかがでしょうか?

82 :02/01/09
>>81
そういう人は GNOME とか KDE とか使ってなさいってこった。
あぁ、でもあれが UNIX だとは思ってほしくなかったりもしないでもない。
パイプを10個ぐらい繋げたときに UNIX つかってるって感じがするよ。漏れは。
あと、sort のオプション忘れてスクリプト書いちゃうときとか。
>>79
すでにそうなってないか?

83 :02/01/22
>1
終わらすのはもったいなくないかい?
卒業しちゃうのかな?

84 :02/01/23
Unixenにとって、エディタまで乗り換えなきゃいけないのが障壁だからなあ
Smalltalkは..>>68
キーボードだけで使える smalltalk環境つくってよ!!
っていうか、やっぱり Lispマシン環境もあこがれるぞ。
symbolics emulatorほしい...

85 :02/02/02
age

86 :02/02/02
更新が滞っていてすみません。
いろいろな端末エミュレータやFreeBSDなどにも対応させるため、
キー入力の時入ってくる連続した数値をいろいろ調べています。
現段階でktermに対応させました。

87 :02/02/03
なんか、間違った努力してるような気がするが…

88 :02/02/03
>>87
いや、全く無駄とは思わないが。

89 :02/02/03
がむばれ

90 :02/02/14
がむばってるかぁ〜

91 :02/02/18
ねぇ〜、>>1のホムペは何処ったの?

92 :02/02/18
>Windowsなどから流れてきたユーザーに的を絞ってはいかがでしょうか?
それいいね!!

UNIXで初めてviやEmacsを扱ったとき
(私はMacから入った人です)
「なんじゃこりゃ?」
と思いました…

93 :02/02/18
えーと、楽しみにしてくれてる方々本当にすみません。
3学期のテストが終わったらまた再開しますので・・・。
春休みに一気にプログラミングするつもりですので、もうちょっと待っててください。

94 :02/03/10
途中経過キボン

95 :02/03/10
がんばれage

96 :02/04/01
1来ないな〜
とうとうtermcap(5)、termios(4)あたりに到達して勉強中かな?
それかこのあたりを許せずにVCに帰っちゃったとか(W

97 :02/05/03
1が戻った時にここがなかったらあまりに気の毒なので保全カキコ

98 :02/05/06
製作再開しています。
春休みにやるとか93で言ってますが、基本情報技術者の試験とかいろいろで
忙しくてできませんでした。おまけに留年してしまったし・・・
まあ個人的なことはともかく、そのうち上げますので。

99 :02/05/07
http://www.geocities.co.jp/SiliconValley-Cupertino/3751/grapad04.tgz
sageでこっそり更新・・・
ktermに対応しました。検索機能がつきました。他バグをいろいろとりました。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
cat (120)
ports, bootstrap-pkgsrcでトラブったらageるスレ (401)
/dev/null (271)
UNIXのシェルブリットって美しくないね (126)
ニャース・ΜL キテガイリスト 28人目 (682)
ちょっとした発見 (136)
--log9.info------------------
インストール回数制限 (173)
OS板の名無しさんを決めるスレ (131)
【次世代】Windows→LongHorn【新OS】 (290)
【Oracle】VirtualBox総合スレ Part10【仮想化】 (475)
[test] 書きこみテスト 専用スレッド 1 [テスト] (233)
なあ、Monaの開発は順調さ build5 (769)
【PCエミュ】bochs Part2【フリー】 (764)
いれてイイの?★Windows XP SP2★マダマダ (822)
とにかく起動が爆速なOS (460)
WindowsNT互換指向 - ReactOS Part9 (842)
再インストールできない・・・。 (408)
新OSを作ったら何が必要か話すスレ (102)
BTRON/超漢字初心者スレ/6版【まったり+質問】 (647)
NEXTSTEP/OPENSTEP (653)
【C】Poneytail(仮称)OSスレッド01【未踏】 (595)
TRONを語るスレ (653)
--log55.com------------------
【復活】独学では駄目【ストレス解消】
DVD グレン・グールド
おまえら楽譜何冊買えば気が済むんだ!
ショパンのワルツ
曲の分析ってどうやんの?
メトロノームを使ったことない奴
ブラームスみたいな作曲家になりたい
カシオトーン・ポータトーン Part2