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

このエントリーをはてなブックマークに追加
1エディタ作ってる人
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 01:46
コンパイルと実行の方法は、
#tar -zxvf grapad03.tgz で展開して、
#cd grapad03 でディレクトリに入って、
#make とやると、実行ファイルができます。
#./grapad で実行できます。
ソースを参考にしようと思ったんだけど、
C++をC風に書くなよダセェ

よって、viできまり。こいつはゴミ。
4エディタ作ってる人:01/12/14 01:57
>>3
それで、動かしてみてくれましたか?
ちゃんとコンパイルできますか?
批判するだけなら猿でも出来る。

とりあえずKondara 2.1 Beta2でコンパイルが通ることを確認。
Tera Termから起動したら「白黒端末では使えません。」
と言われたので試してない。
>>5
curses が $TERM を見てんのかな?
7エディタ作ってる人:01/12/14 02:14
>>5
ありがとうございます!!
基本的にカラーで表示する事を前提にしているので、
白黒だと起動できません。

強調表示とか検索とか、あとショートカットキーとか、
とりあえず書いただけで使えない機能がまだあるので、
その辺は文句言わないでください。
とりあえず今は検索機能を作るため、BM法とKMP法という
アルゴリズムを勉強しています。
8gchar ネムー:01/12/14 02:14
ktermでちゃんと動いたよ。

gnome-terminal では動かなかったです。当方turbo
readmeでは動くらしいんだけど、

がんばれー
93:01/12/14 02:14
>>5
いや、フィードバックもしようと思って今Makefileを
マクロ使って書き直してたんだけど、なんかエラーになるからやめた(笑)。

FreeBSD 4-STABLE, コンパイル通ってkterm上でさらにscreenの上で動いたよ。
F2押してもキーコードが入るだけだったけど。Alt+F2か?
10エディタ作ってる人:01/12/14 02:19
えーとですね、ktermでも動くんですけど、ファンクションキーがだめなんですよ。
本当はメニューはalt+何かで選べるようにしたいんですけど、
altキーの入力を知る方法がわからないんです。
FreeBSD(98)4.3でコンパイル通ったしbetermで動いたよ。
枠がおかしいのかどうかは確認してないけど。
ただbeterm自体が日本語通らないからメニューに何が書いてあるやらさっぱり。
勘で終了させた。英字表記が理解しづらいよ。sageが何かまだ分からない。
12名無しさん@お腹いっぱい。:01/12/14 02:43
Vine-2.1 LinuxPPCでコンパイルしました。
コンパイルはうまくいったと思います。実行ファイルは出来てるので(何せ初心
者なもので良く分からない)。
でも
./grapadをすると

zsh: segmentation fault ./grapad

でうまく行きません。grapadを実行後lsコマンドを実行すると表示が滅茶苦茶に
なります。

kterm、xterm、gnome-terminalで駄目でした。

うーん。何がいけないんだろう。

『初心者にはお勧めできない』

ですかね・・・シュン・・・
131:01/12/14 02:46
segmentation faultはこちらのバグです。
メモリの変な領域にアクセスすると出るようです。
本当は僕も含めて、初心者が使いやすいように作ったんですがね…
141:01/12/14 02:49
あと、メニューのageとかsageとかは気にしないで下さいw
ショートカットキーの表示をしてあるのですが、まだその機能が無いので
適当に書いてあるだけです。
15奈々さん:01/12/14 03:01
記念きねん
がんばってvi,emacs越えてな。
16名無しさん@お腹いっぱい。:01/12/14 03:04
ktermの問題は
termcap (この場合は terminfoか) が知っているファンクションキーの
シーケンスと実際のシーケンスが違うせいだと思う。
cat とかやって、ファンクションキーを押して生のシーケンス見てみ。
infocmp kterm とやって出てくる値と違うだろ。

解決方法はしらないけど、
terminfo を書き換えるってのが妥当じゃないかね。

それと、ktermではXresourcesにこれを追加しとけ:
KTerm*VT100*EightBitInput: false
これで Alt+ほげ が ESC + ほげ のシーケンスで送られるようになる。
1712:01/12/14 03:12
>>1みたいな人はなんか応援したくなる。

頑張ってくださいね。
18名無しさん@お腹いっぱい。:01/12/14 04:04
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)
で参照するようにしていただけるとうれしいです。
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を
オープンできるけど スクロールさせると日本語が文字化けする

......とりあえず頑張って......
>>16
Alt+ほげ って本当は [0x80-0x9F] (C1 control code) で、
8bit 通らない場合は [ESC] [0x00-0x20] だったような。

最近は違うのかな。
まぁ多くの実装は ESC XX なんだけど。
21名無しさん@お腹いっぱい。:01/12/14 07:17
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) はサポートしてないですよね?
2221:01/12/14 07:25
本題と外れるんで sage ですが……

FreeBSD っていつになったらまともな termcap になるんだろ。
NetBSD とかが使ってる http://www.tuxedo.org/~esr/terminfo/
あたりの使えばすむと思うんだけどなぁ… esr 嫌いなのかな?(w
FreeBSDのeeみたいな感じだね〜
「秀丸 for Unix ほしい」って声がけっこうあるから、
そういうの目指したら?
>>20
kterm上からximで日本語入力すると C1 control code は
日本語文字になっちゃうのよ。

日本語入力しないなら (emacsみたく自前でIM持つとか) 別にいいんだけど
たぶん>>1の様子だとそうじゃなさそう
26おはよごす:01/12/14 08:55
テスト環境 : TeraTermからVine1.1へログインして使用

Makefile
(1)g++に変更しないとコンパイルできなかったよ
(2)common.oのルールがないよ

grapad
(1)F2が効かないので保存できない...
(2)メニューを英語にしてくれたらうれしい(普段SJIS環境にしてるもんで)
>>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 11:00
手軽にthread処理の出来るマクロ言語を搭載してクレー。

しかし、これから エディタに言語載せるとしたら、なにのせる?
guile あたり使っとく?
29名無しさん@お腹いっぱい。:01/12/14 11:34
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
[email protected]!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 12:31
二日前にLINUXのインストールを成功させたばかりの超超初心者ですが
イチユーザーとして応援してます!頑張って下さい>>1
理解できるようになったら是非試させていただきます。
311:01/12/14 12:32
こんにちは。なんかいっぱいレスがついていてうれしいです。
makefileについていろいろ書いてもらっていますが、
まだmakeの使い方がよく分かっていないので、勉強したいと思います。
今までずっとVisualC++を使ってきたのですが、違いに結構戸惑っています。
>>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
むしろ automake/autoconf を使い方を覚えた方がいいかも?
あ、でも素の makefile 書式も知らないとダメか...
34名無しさん@お腹いっぱい。:01/12/14 13:07
起動してすぐ下にカーソル移動しようとするとセグブります。
3534:01/12/14 13:11
Makefile は本読まないと無理だよ。本屋へ GO!
3629:01/12/14 13:22
>>32
> >>29 変数定義にちょっと違和感がないでもないので......
確かに... すまんす
いまさら、emacs, vim を超えることなど不可能
38名無しさん@お腹いっぱい。:01/12/14 15:12
>>37
越えることが不可能なのは同意だが、
だからといって意味がないとは言えない。

emacsやviの変態キーバインド覚えるのが嫌な人のための
CUIエディタとなればいい。
道のりは遠そうだけど育っていくのを見てるのは楽しいかも。
でもできるだけ早く最低限の機能を付けてウプするべし。
最近>>29>>32みたいなのよくみるんだけど、これなに?
最近か?
10年前かた見るけど
cygwinで動いたYO.
43名無しさん@お腹いっぱい。:01/12/14 21:25
>>40
最近かよ... 君なんで UNIX 板にいるの? (T-T
>>40
uudecode で復元できる。
45あぼーん:あぼーん
あぼーん
46:01/12/14 23:56
別にemacsやviを越えようなんて思ってませんよ。
元々「勉強しなくても誰でもすぐ使える」事を目的につくっていますので
余分な機能とかは今のところつけないつもりですし。

今日は1時間ほどやって、検索機能を付けました。
BM法もKMP法も使わない単純比較ですが、もう最近のCPUだと一瞬なんですね。
>>40
ish のほうがいい?
Vinelinux2.15(だっけかな?)で一発OKダタヨ

>>42
テラタムで動かないからCygwinのXに飛ばして動かしたよ・・・・先にスレ読んでおくんだったよ
49:01/12/15 01:00
GRAPADが完全に動作するのは次の3つを満たす環境です。
・カラーが使える
・ファンクションキーが使える
・日本語が使える

TeraTermの場合白黒端末なので動きません。
無理矢理うごかしてもファンクションキーを受け付けないのでメニューの操作ができません。
キーの入力については今後いろいろ調べてみたいと思うのですが、
とりあえず今は機種依存の解決よりエディタの機能の方を優先して作っています。
50名無しさん:01/12/15 01:00
>>46
勉強しなくても使えるけど、裏では強力なことしてるってのがいいなあ。
だからインクリメンタルサーチにしたほうがいいかなーと。

migemo を導入してみない?
51:01/12/15 01:01
機種依存というよりOS依存ですね…
less + vi + migemo みたいなの希望。
コンソールでサクサク動くやつがいいな。
# まぁ less して v すりゃ vi 立ち上がるし、
# そういうアプローチが UNIX なんだろうけどさ。
53名無しさん:01/12/15 02:34
>>52
その条件満すんだったらvi 改造したほうがはやそうね。
C 版の migemo も作られたことだし。

>>1 も migemo 使ってほしいなあ。
正規表現を実装しなきゃいけないから大変かもしれないけど。
>>49(>>1)

>>21 を ~/.termcap に書き込んで export TERM=teraterm でok。
55名無しさん@Vim%Chalice:01/12/15 04:59
私も 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 07:47
>>55
Win32(VC++ + MFCだけかも)だと、コンストラクタと初期化関数の
二段階での初期化が定石だったりする。
その癖で…ってところだと思う。
>>56
メモリ以外にリソースを消費するものだけ、なんだけどね
いきなりコンストラクタでハンドル消費したらえらいことに
わ!これすごいねっ!
氏んで!!
neがライバルとなりそうな・・・
ne ってまだメンテされてるの?
Debian Gnu/Linuxです.
起動はしたもののCtrl-cでしか終了できない.
HHKだからFunctionキーが使えないのか?
xevではちゃんと認識してるんだけど..
キーコードが違うのかな?
期待age.
62:01/12/16 02:30
コンストラクタで初期化していないのは、Windowsの頃の癖です。
MFCもそうですし、DirectXなどもそうです。
でも明らかに独立していそうなクラスはコンストラクタで初期化しています。

メニューが開けないという人が多いようですが、
キー処理をもっとちゃんとやれば対応できると思います。
特殊なキーを押すと、^[[@とかいうコントロールコードのようなものが
入力されてくるみたいですが、これを一つずつひろっていけばできそうです。
こういった連続したコントロールコードを一つの文字として解釈するモードが
cursesライブラリに用意されていて、今はそれを使っているのですが、
どうやらあまり信用できないみたいですね。

インクリメンタルサーチやmigemoは、導入するとしても相当あとになると思います。
63名無しさん:01/12/17 07:41
漏れもエディタ作ったYO!

editor.c
>#include "/dev/tty"

ネタにつきsage
がんばれよー。
64名無しさん@お腹いっぱい。:02/01/01 16:25
応援上げ!
エディタマクロとして perl が使えれば海外でも流行るんじゃないかと思うんだ
けど・・・そーゆーエディタってあんの?
# 国内的には ruby なのかもしれんけど
>>65
あいだをとってPythonというのは?
67名無しさん@お腹いっぱい。:02/01/02 20:39
>>65-66
vimだとperl/ruby/python/tclが使えちゃうんだよねぇ
ここはマニアックにHaskell/Prolog/Smalltalkとか。

関係ないけど、emacsのようなソフトってLispよりもSmalltalkの方が似合うと思うんですけど、どうなんでしょう?
69名無しさん:02/01/02 21:29
あー、Smalltalk 使えたらかなーりいいかも。
というか、欲しくなっちゃったじゃないか...

まあ、半歩譲って CLOS あたりでもいいや。
7068:02/01/02 22:35
> LispよりもSmalltalk
これは言語のことだけじゃなくて、ソフト全体のことです。
「とりあえずSmalltalkでマクロが組めるようにしてみた」とか、
「xyzzy用にCLOSを作った」とか、そういうことじゃなくて。
じゃあSqueakでエディタ造ったらえーやんけ。
仮想マシンだぞ。カスタマイズし放題。

という話に・・・
72名無しさん:02/01/03 00:47
そしたら WikiWiki しちゃうね。
っていうか、Squeak = Wiki ってイメージが。
73応援します:02/01/03 22:25
emacsやviとはまったく違ったエディタを是非目指してほしい.
emacsやviの亜流をめざしても所詮亜流にしかならないが,
うまくいけば第3の標準エディタになれるかもしれない.
(vi/emacs以外のユーザごめん)

カスタマイズする言語のウケがよければはやるかもね.
ではがんばって!
最近 1 来ないね。
75名無しさん:02/01/05 19:57
というか、既存のカスタマイズ方法の枠組みを超えてみるとか。
なにげなく使ってるとかってにカスタマイズされてくみたいな。
というか、既存の入力方法の枠組みを超えてみるとか。
なにげなく思ってるとかってに入力されてくみたいな。
というか、既存の開発方法の枠組みを超えてみるとか。
なにげなく煽ってるとかってに開発されてくみたいな。
というか、既存の仕事の枠組みを超えてみるとか。
なにげなく2ちゃん見てるとかってに終ってるみたいな。
というか、既存の人生の枠組みを超えてみるとか。
なにげなく生きていると知らぬ間に逝ってるみたいな。
80名無しさん@お腹いっぱい。:02/01/09 13:06
おぉ〜い!1はどうした!?
俺は、密かに応援してるぞ!
がんばれ〜〜
81例の騒ぎで来た人:02/01/09 15:40
フラッシュ騒ぎでこの板に来て、Linuxを使ってみようと思っていますが、
>>1さん、その他有志の開発協力者のみなさん、
がんばって育ててください。期待しています。

Windowsなどから流れてきたユーザーに的を絞ってはいかがでしょうか?
>>81
そういう人は GNOME とか KDE とか使ってなさいってこった。
あぁ、でもあれが UNIX だとは思ってほしくなかったりもしないでもない。

パイプを10個ぐらい繋げたときに UNIX つかってるって感じがするよ。漏れは。
あと、sort のオプション忘れてスクリプト書いちゃうときとか。

>>79
すでにそうなってないか?
83名無しさん@お腹いっぱい。:02/01/22 23:53
>1
終わらすのはもったいなくないかい?
卒業しちゃうのかな?
84名無しさん@お腹いっぱい。:02/01/23 01:59
Unixenにとって、エディタまで乗り換えなきゃいけないのが障壁だからなあ
Smalltalkは..>>68
キーボードだけで使える smalltalk環境つくってよ!!

っていうか、やっぱり Lispマシン環境もあこがれるぞ。
symbolics emulatorほしい...
85名無しさん@お腹いっぱい。:02/02/02 00:30
age
861:02/02/02 12:35
更新が滞っていてすみません。
いろいろな端末エミュレータやFreeBSDなどにも対応させるため、
キー入力の時入ってくる連続した数値をいろいろ調べています。
現段階でktermに対応させました。
87名無しさん@お腹いっぱい。:02/02/03 06:37
なんか、間違った努力してるような気がするが…
88名無しさん@お腹いっぱい。:02/02/03 11:35
>>87
いや、全く無駄とは思わないが。
89名無しさん@お腹いっぱい。:02/02/03 13:43
がむばれ
がむばってるかぁ〜
ねぇ〜、>>1のホムペは何処逝ったの?
92名無しさん@お腹いっぱい。:02/02/18 20:37
>Windowsなどから流れてきたユーザーに的を絞ってはいかがでしょうか?
それいいね!!

UNIXで初めてviやEmacsを扱ったとき
(私はMacから入った人です)
「なんじゃこりゃ?」
と思いました…
93:02/02/18 20:53
えーと、楽しみにしてくれてる方々本当にすみません。
3学期のテストが終わったらまた再開しますので・・・。
春休みに一気にプログラミングするつもりですので、もうちょっと待っててください。
途中経過キボン
95名無しさん@お腹いっぱい。:02/03/10 00:04
がんばれage
1来ないな〜
とうとうtermcap(5)、termios(4)あたりに到達して勉強中かな?
それかこのあたりを許せずにVCに帰っちゃったとか(W
1が戻った時にここがなかったらあまりに気の毒なので保全カキコ
981:02/05/06 03:24
製作再開しています。
春休みにやるとか93で言ってますが、基本情報技術者の試験とかいろいろで
忙しくてできませんでした。おまけに留年してしまったし・・・
まあ個人的なことはともかく、そのうち上げますので。
http://www.geocities.co.jp/SiliconValley-Cupertino/3751/grapad04.tgz
sageでこっそり更新・・・

ktermに対応しました。検索機能がつきました。他バグをいろいろとりました。
1001:02/05/07 23:29
http://www.geocities.co.jp/SiliconValley-Cupertino/3751/grapad041.tgz
今日はageで更新。置換機能が付きました(一斉置換のみ)。

XWindow版を作ろうかと考えています。
と言ってもまだなにも分からないんですよねえ。HelloWorldしかできないです。
1011:02/05/07 23:35
ウィンドウとかはともかく、一番分からないのはIMです。
Grapadをコンソールで作ってたのは、はじめから日本語変換が使えるからという理由からでした。
そうでなければ最初からWindowでやってましたから。
というわけで先ほど質問スレに書いたところ、いいサイトを教えてもらったので
今読んでいるところです。
1021:02/05/07 23:36
というわけで今日は寝ます。ではまた。
お。もうこねーだろうなと思ってたよ。
まーがんばれや!
...リュー年にめげず(イヂワル
ついに帰ってきたか>>1
がんばれ。
落第小僧がエディタ作りに逃避しているスレはここですか?

…ごめん、ちょっと言ってみたかった。>>103が悪いんだから、
責めるんならヤツを責めてくれ。
まあでも、就職の面接の時なんかに

「一度留年されてるそうですが、どうしてですか?」
「エディタ作ってました。」

なんてのはちょっと カコ(・∀・)イイ!!かも。がんがれ〜
107103:02/05/08 23:22
オイオイ俺はイヂワルなようでいて実はヤンワリとなぐさめているのに
キミ>105のは一撃でトドメさしてるぞ(w

#そしてこのネタ引っ張るほど1が落ち込んでいくという罠。
1081:02/05/09 19:32
まあ、エディタ作るの再会したのは、留年したからという理由もあるんですがね。
毎日かなり暇です。
C++なんだし、Qt を使ってみては?
Xlib を直接使うと自前ライブラリを作りたくなる罠だし。
>>109
GUIはオプショナルに留めてほすぃ。。。
--enable-gui をつけよう
GtkにしようかQtにしようかと迷っていたんですが、
結局Xtで作っています。Xaw3dはダサダサで、
僕の目指しているグラフィカルなエディタとは大きくかけ離れているので
XawXpmを代わりに使っています。
1131:02/05/13 09:24
CとC++用のコメント強調機能を付けました。
http://www.geocities.co.jp/SiliconValley-Cupertino/3751/software/grapad042.tgz

簡単な紹介のページを作りました。
http://www.geocities.co.jp/SiliconValley-Cupertino/3751/software/grapad.htm


試しにいれてみますた。

wmのionがファンクションキーを全て取ってしまっているので、
いきなり操作不能に陥ってしまいますた。

気を取り直してコンソールで実行したら、メニューが全て文字化けして
しまいました(日本語に対応してないから当り前か…)

でも、簡素な作りには好感が持てます。
ee代替を目指してがんがれ!
>>1がんばれよ!
落ち着いたら STL を使ってみようと、言ってみるテスト
117名無し:02/05/19 13:33
がんばってるか〜?
1181:02/05/20 11:11
OSや、端末エミュレータの種類によってキーバインドが異なるので面倒ですね。
cursesについているkeypad()を使えばその辺りを吸収してくれるのですが、
値をキーの種類ではなく、emacsのショートカットキーで返して来るのでよく分かりません。
私はほとんどemacsを使ったことが無いのです・・・
いってることがよく分かんないぞ。
キーの種類と一口に言っても(A)よりデバイスに近いレベルで言うキースキャンコード、
(B)端末寄りにに考えるなら ASCII コード、エスケープシーケンスがどうこう、
(C)ユーザの視点でキーの種類といったらすなわちキートップに書いてあるラベルのこった。

おそらく1の欲しいキーの種類はC(そして行き着くところA)のことだと憶測するが、
curses、termcap では(というかいわゆる文字端末上では)無理で、キミが「emacsのショート
カットキー」と言ってるのはBのことかと思われる。
このエディタのソースを参考にしてはどうですか?
ALT キーも使えてますよ。
http://fte.sourceforge.net/
FDclone のソースを参考にするというのはどうでしょうか。

http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-2.01a.tar.gz

term.c, input.c あたりが参考に…ならないかも(w
122名無しさん@お腹いっぱい。:02/07/21 23:58
ほっほっほっ・・・エディタを極めるものはアプリケーションを極める、じゃ・・・
>>49
入れてないので流して聞いてください、スマソ。
寺はSetup->WindowにあるFull colorでカラーが使えると思ったんだけど…。
125 :02/08/02 16:52
で、どうなった? >>1
1よ、やってんのか?
automake化( ̄ー ̄)ニヤリッ

begin 700 enautomake.sh
M(R$O8FEN+W-H"@IC:&UO9"`V-#0@*@IM:V1I<B!S<F,*;78@*BYC<'`@*BYH
M('-R8PIM=B!R96%D;64N='AT(%)%041-10IT;W5C:"!#3U!924Y'($Y%5U,@
M05542$]24R!#:&%N9V5,;V<*<FT@;6%K969I;&4*"B,@5&AI<R!I<R!A('-H
M96QL(&%R8VAI=F4N("!3879E(&ET(&EN(&$@9FEL92P@<F5M;W9E(&%N>71H
M:6YG(&)E9F]R90HC('1H:7,@;&EN92P@86YD('1H96X@=6YP86-K(&ET(&)Y
M(&5N=&5R:6YG(")S:"!F:6QE(BX@($YO=&4L(&ET(&UA>0HC(&-R96%T92!D
M:7)E8W1O<FEE<SL@9FEL97,@86YD(&1I<F5C=&]R:65S('=I;&P@8F4@;W=N
M960@8GD@>6]U(&%N9`HC(&AA=F4@9&5F875L="!P97)M:7-S:6]N<RX*(PHC
M(%1H:7,@87)C:&EV92!C;VYT86EN<SH*(PHC"4UA:V5F:6QE+F%M"B,)8V]N
M9FEG=7)E+FEN"B,)<W)C+TUA:V5F:6QE+F%M"B,*96-H;R!X("T@36%K969I
M;&4N86T*<V5D("=S+UY8+R\G(#Y-86ME9FEL92YA;2`\/"`G14Y$+6]F+4UA
M:V5F:6QE+F%M)PI84U5"1$E24R`]('-R8PI%3D0M;V8M36%K969I;&4N86T*
M96-H;R!X("T@8V]N9FEG=7)E+FEN"G-E9"`G<R]>6"\O)R`^8V]N9FEG=7)E
M+FEN(#P\("=%3D0M;V8M8V]N9FEG=7)E+FEN)PI8(R!0<F]C97-S('1H:7,@
M9FEL92!W:71H(&%U=&]C;VYF('1O('!R;V1U8V4@82!C;VYF:6=U<F4@<V-R
M:7!T+@I804-?24Y)5"AS<F,O9W)A<&%D+F-P<"D*6$%-7TE.251?05543TU!
M2T4H9W)A<&%D+"`P+C0N,BD*6$%-7T-/3D9)1U](14%$15(H8V]N9FEG+F@I
M"E@*6",@0VAE8VMS(&9O<B!P<F]G<F%M<RX*6$%#7U!23T=?0UA8"EA!0U]0
M4D]'7T-#"EA!0U]04D]'7TE.4U1!3$P*6`I8(R!#:&5C:W,@9F]R(&QI8G)A
M<FEE<RX*6",@1DE8344Z(%)E<&QA8V4@8&UA:6XG('=I=&@@82!F=6YC=&EO
M;B!I;B!@+6QC=7)S97,G.@I804-?0TA%0TM?3$E"*&-U<G-E<RP@;F]E8VAO
M*0I8"E@C($-H96-K<R!F;W(@:&5A9&5R(&9I;&5S+@I804-?2$5!1$527U-4
M1$,*6$%#7T-(14-+7TA%041%4E,H<W1D;&EB+F@@<W1R:6YG+F@I"E@*6",@
M0VAE8VMS(&9O<B!T>7!E9&5F<RP@<W1R=6-T=7)E<RP@86YD(&-O;7!I;&5R
M(&-H87)A8W1E<FES=&EC<RX*6`I8(R!#:&5C:W,@9F]R(&QI8G)A<GD@9G5N
M8W1I;VYS+@I804-?1E5.0U]-14U#35`*6$%#7T-(14-+7T953D-3*&UE;7-E
M="D*6`I804-?3U544%54*%M-86ME9FEL92!S<F,O36%K969I;&5=*0I%3D0M
M;V8M8V]N9FEG=7)E+FEN"F5C:&\@>"`M('-R8R]-86ME9FEL92YA;0IS960@
M)W,O7E@O+R<@/G-R8R]-86ME9FEL92YA;2`\/"`G14Y$+6]F+7-R8R]-86ME
M9FEL92YA;2<*6&)I;E]04D]'4D%-4R`](&=R87!A9`I8"EAG<F%P861?4T]5
M4D-%4R`](&-H86EN+F-P<"!C:&%I;BYH(&-O;6UO;BYC<'`@8V]M;6]N+F@@
M9&EA;&]G+F@@7`I8"0EE9&ET;W(N8W!P(&5D:71O<BYH(&=R87!A9"YC<'`@
M:V5Y+F-P<"!K97DN:"!L:6YE<BYH(%P*6`D);65N=2YC<'`@;65N=2YH(')E
M<VES=&]R>2YC<'`@<F5S:7-T;W)Y+F@@<G5L97(N:`I8"0I%3D0M;V8M<W)C
M+TUA:V5F:6QE+F%M"@IS970@+7@*86-L;V-A;`IA=71O:&5A9&5R"F%U=&]M
M86ME("TM9VYU("TM861D+6UI<W-I;F<@+2UC;W!Y"F%U=&]C;VYF"F5X:70*
!"@``
`
end
128名無しさん@お腹いっぱい。:02/08/16 03:40
>>127>>1
age
130名無しさん@お腹いっぱい。:02/09/25 23:53
つくってくれよ
131:02/09/26 19:13
すいません、長いことほったらかしてました。
X用のエディタ作ろうと思ってXtとGtk+を勉強したりしてました。
期待sage
133:02/09/27 22:03
しばらくsageでいってください。
ソースまで読んでる人いるかどうか知りませんが、
文字列を保持しているCChainというクラスを全面的に書き直しているところです。
これでスクロールが大幅に早くなる・・・かも。
戻ってきたか。期待してるぞ。

> X用のエディタ作ろうと思ってXtとGtk+を勉強したりしてました。

気持ちはわかるけど、あんまり最初から欲張りすぎると
結局わけわかんなくなっちゃって挫折するから気をつけて。

ところでgeocitiesのページが消えてるんだけど、ソースはどっから落としゃいいのよ?
このさいだから sf.jp のアカウントでもとれば?
135:02/10/05 01:56
なんか消えてますね。
あげようとしたんですが、ジオのパスワード忘れてしまって・・・
また垢取って別のとこにX版といっしょにあげます。
>>1
がんばれよ。
137:02/10/07 02:03
クリップボードの使い方がわからん。
もうすこし進捗状況を詳しく説明してもらわないと
何がなんだかさっぱりわからないよ。独り言のつもりならいいけど。
いったい何を使って作ってるんだ?
Xt なら xclipboard のソースでも参考にしる。
Gtk+ は知らないが、Xt よりは簡単だろう。
139:02/10/12 23:55
使ってるライブラリはGtk+です。
GtkEditableを通してやろうと思ったら、なんか字数制限があるらしく、
選択した部分全部コピーしてくれません。んー、まあいっか。
>>1
早くどっかのアカウント取って落せるようにしてちょ。
http://www.geocities.co.jp/SiliconValley-Cupertino/9688/index.htm
更新してませんが、ここでやってきます。
142:02/11/27 19:19
制作中のGTKを使ったエディタですが、文字を打つぐらいはできるようになったので、公開します。
あいかわらずクリップボードの使い方がわからないんですよねえ。
コピーはできるのに、ペーストができない。
RedHat7.3 でコンパイルエラーが出たので、パッチを送ったよ。
144:02/11/28 21:32
どうもありがとうございました。
ふつうはキャスティングなんてしなくてもコールバック関数を接続できますよねえ?
GTKは、とにかくキャスティングが面倒すぎです。
でも安全のため、コールバック関数の部分はGTK_SIGNAL_FUNCマクロで書き換えることにします。
そりゃ関数を多重定義できる言語の「フツー」だわさ。
初心者にgrapad使わせるのにdebパッケージでも作るかと思ったのだが、配色
強制なのか。
WindowsからUNIXにアクセスして使う、というライトUNIXユーザもけっこう多
いし、うーん……

あ、あとGTK+エディタだと、こんなのが出てたよ。

ttp://www.maid.org/tmaid/

Windows版もあり。
GrapadXプレリリース2を公開しました。
UndoとRedo機能が付きました。クリップボードの使用が安定しました。
結構使えるようになってきましたよ。
GrapadX自身の制作も、GrapadXで行っています。

>>145
Cって多重定義できませんでしたっけ?
それに暗黙の変換ぐらいしてくれてもいいのにとか思ったりしてます。

>>146
grapadも近いうちに手を入れます。grapadxもそのつもりで作っていますから。
そのために内部で文字情報を保持しているchainというクラスは、
純粋なC++のみでライブラリに依存しないように作っています。
あとはユーザインターフェースをかぶせれば、GTKでなくとも
QTだろうがMFCだろうがCursesだろうが、なんにでも対応できます。
結構下がってきたのでそろそろ上げますか
うむ、楽しみだ。
俺自身はviもEmacsもむしろ好きなので使うことは無いだろうが、初心者にと
りあえず使ってなって言えるエディタがないからねえ。
キラーアプリの可能性すら秘めてるジャンルだけに、超期待。
150名無しさん@Vim%Chalice:02/12/04 22:26
>>149
viやemacsはわけわからんからun*xはクソ、とか言うヤシに
「grapad使えやゴルァ!」と言えるようになるといいなあ。
vimでもEmacsでもメニューがついてるから、初心者でも問題ないとおもうが。
>>151
でも、どちらにしてもある程度使い込まないと便利じゃない(むしろ不便)
というのは事実かと。
vi系はモードの違いを意識できるようになるまでが大変だし、Emacsはエディ
タという枠を越えてるからな。
もし議論がしたいなら別スレでやってくれ。
154143:02/12/05 07:22
またも RedHat 7.3 でコンパイルエラー。
list.cpp の先頭で #include <stding.h> が必要です。
あと gxlist_find が bool 値を返さないという warning が出る。

C (C++) でプログラムを書くときは、この4行:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
はもうお約束だと思ったほうがいいよ。オレはいつもまず最初に入れてる。
155143:02/12/05 07:27
あと、バグ発見。
起動したあとなにか文字をタイプして、いったん undo して、またなにかタイプすると SEGV る。
以下、gdb の出力結果。crtper が正しく戻ってないようす。

GNU gdb Red Hat Linux (5.1.90CVS-5)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...
(gdb) run
Starting program: /tmp/grapadx-pr2.0/gx

Program received signal SIGSEGV, Segmentation fault.
0x08054ed7 in CChain::SaveChanged (this=0x80ab370, inputtype=3, x=0, y=0, n=0xbfffe9c4) at chain.cpp:730
730 per[crtper].end->prev->next=new node;
(gdb) print per[crtper].end->prev->next
Cannot access memory at address 0x4
(gdb) print per[crtper].end->prev
Cannot access memory at address 0x4
(gdb) print per[crtper].end
$1 = (node *) 0x0
(gdb) print crtper
$2 = 199
(gdb)
156143:02/12/05 07:35
それからクリップボードがどうも X と連携してないみたいです。
Mozilla のように、X的なインターフェイス (選択した部分を真ん中ボタンではりつけ) と
Windows的なインターフェイス (明示的にコピー・ペーストを指示する) が
ミックスされてるとうれしいなあ。

あと、コメントの検出はいまのところ chain.cpp で決め打ちにされてるみたいだが、
設定ファイルで指定できるようにするといろんな言語に対応できて便利。
1571:02/12/06 00:34
>>143
すいません。またstring.h入れ忘れました。なんで自分の環境だとエラー出ないんだろう?
Undoはまだバグがありますね。もう少し見直してみます。
中ボタンで貼り付けは、いらないかなとか思っていたんですが、やっぱりいりますかね?
うーん、どうやってやるんだろう?ちょっと調べてみます。
#include <cstdio>
#include <cstdlib>
#include <cstring>
こうだよな? やっぱ気持ち悪いべ。
159名無しさん@お腹いっぱい。:02/12/07 12:29
1のリンク先403 Forbiddenじゃないか?
>>159

>>141を見よ

つうか、なんで sf.net とか使わんの?
sfのやり方に沿ってやらなきゃいかんのが面倒だからじゃないの?
一度慣れてしまえばどうって事はないんだろうけど。
>>157
-Wall付けとけ(ソースを見ずにパピコ
163名無しさん@お腹いっぱい。:02/12/07 14:04
>>160
サンクス。
でも展開してmakeしたらエラー沢山出たんで、嫌になって止めちまった。
cursesでどうやって日本語使うのか知りたかったんだが…
164:02/12/07 21:32
sfってsourceforgeの事ですよね?vectorのunix版みたいな感じなのかな・・・?
ちょっとのぞいてみましたが、なんだか面倒そうですね。
もうすぐ1年
まったり良スレ
1応援さげ
>>1
vectorみたいな使い方もできるけど、肝はcvsだと思う。
ようするに、あなたが指定したメンバーにソースを自由にいじらせる
(といっても履歴つきだから、後から戻そうと思えばもどせる) ことができる。

unixに慣れてないとsshやrsyncは面倒くさく感じるかもしれないけど、
geocitiesにシコシコftpでアップするよりはずっと自由度が高いし、
慣れるとメチャ楽。それと個人的にはバナー広告がでないのがうれしい。
そう、nxtのように。
168:02/12/08 20:58
あー、ほんとだ、もう1年になるんですね。
でも途中でやめてた時期が長いから、実質2,3ヶ月ぐらいでしょうかね。
いまだにUNIXの使い方に慣れていないので、まずはUNIXに慣れる方が先かも。
特にエディタを作ってる以上、正規表現は絶対避けては通れませんし・・・
ベクターは貸し倉庫で、SourceForge はアレだ
ツカサのワンワンオフィスってとこか。
とりあえず CChain は std::list を使った方がいいんじゃないか
と言ってみるテスト
1711:02/12/22 15:52
std::listはつかったことないのでよくわからないのですが、
C++に標準で装備されてる双方向リストのことでしょうか。
リストのデータ構造についてはそれほど苦労していないので、自分でプログラミングするぶんには
今のままでいいんじゃないかと思っています。

今はundoをずっとやってるんですが、どうも元にもどす位置がずれてしまいます。
もうじき冬休みなので、そうしたら時間をかけてみなおしたいと思います。
172170:02/12/29 05:26
>>1
いや、ソース公開してるんだから独自方式より、皆に分かる方が
いいかなぁとか思ったりしたわけです。
まぁ「ソース公開してんだからテメェでやれ」と言われるとアレですが。
173山崎渉:03/01/15 13:15
(^^)
ねえ、元気? 風邪引いてない?
気長に待ち。
完成はサグラダ・ファミリアと一緒くらいか〜。
176厨房:03/03/25 07:25
grapadをForte C++でコンパイルしてみた。
1 makefileは使えない。(書き直した)
2.エラーと警告がでた。
dmake: 並列モードをデフォルトとして使用します。
.dmakerc ファイルの設定については、dmake(1) のマニュアルページを参照してください。
Blade --> 1 個のジョブ
CC -c menu.cc
Blade --> 2 個のジョブ
CC -c resistory.cc
Blade --> 2 個のジョブ
CC -c key.cc
Blade --> ジョブ出力
CC -c menu.cc
"menu.h", 行 53: 警告: id が menuitem::id を隠しています.
"liner.h", 行 23: エラー: "CLiner::Init(int, int, int, int)" は値を戻すことを期待されています.
"liner.h", 行 37: 警告: waddstr(_win_st*, char*) の呼び出し中の仮引数 2 で文字列リテラルを char* に変換しました.
"liner.h", 行 38: 警告: waddstr(_win_st*, char*) の呼び出し中の仮引数 2 で文字列リテラルを char* に変換しました.
"dialog.h", 行 47: 警告: waddstr(_win_st*, char*) の呼び出し中の仮引数 2 で文字列リテラルを char* に変換しました.
"dialog.h", 行 48: 警告: waddstr(_win_st*, char*) の呼び出し中の仮引数 2 で文字列リテラルを char* に変換しました.
"editor.h", 行 49: 警告: CDialog::Create(char*, int, int, int, int) の呼び出し中の仮引数 t で文字列リテラルを char* に変換しました.
"editor.h", 行 50: 警告: CDialog::AddStatic(int, int, int, int, char*) の呼び出し中の仮引数 caption で文字列リテラルを char* に変換しました.

続く
177厨房:03/03/25 07:26
続き

"editor.h", 行 51: 警告: CDialog::AddButton(int, int, int, char*) の呼び出し中の仮引数 caption で文字列リテラルを char* に変換しました.
"editor.h", 行 80: 警告: CDialog::Create(char*, int, int, int, int) の呼び出し中の仮引数 t で文字列リテラルを char* に変換しました.
"editor.h", 行 81: 警告: CDialog::AddStatic(int, int, int, int, char*) の呼び出し中の仮引数 caption で文字列リテラルを char* に変換しました.
"editor.h", 行 82: 警告: CDialog::AddButton(int, int, int, char*) の呼び出し中の仮引数 caption で文字列リテラルを char* に変換しました.
1 個のエラーと 11 個の警告が検出されました.
*** エラーコード 1
dmake: 致命的エラー: ターゲット `menu.o' の構築用コマンドが失敗しました。

あと、UNIXで動作確認してないのにUNIX用を名乗って、漏れみたいなのから電波照射されたりしてない?
178厨房:03/03/25 07:32
liner.hの"CLiner::Init(int, int, int, int)"
に戻り値として0を返すよう付け加えたらコンパイルは通ったが、
core吐いて落ちた。
以上

ヘボ
>>179
・・・そうか
コンパイルに上手・下手があったのか。
それはしらなんだな。
>>178=180=181
editor.cppの448行目からの3行をコメントアウトしたら、
とりあえず動いた。
182山崎渉:03/04/17 12:38
(^^)
183あぼーん:あぼーん
あぼーん
184あぼーん:あぼーん
あぼーん
>>1=>>171の冬休みはまだかーい?
186あぼーん:あぼーん
あぼーん
187あぼーん:あぼーん
あぼーん
188あぼーん:あぼーん
あぼーん
189名無しさん@お腹いっぱい。:03/12/13 19:51
Grapadもうどこにもないの
テキストフォーマットに標準の仕様ってありますか?
ここには改ページが FF って書いてあるけど、Form Feed (書式送り?)って
改ページと同じなの?

http://www.atmarkit.co.jp/icd/root/79/49634379.html
>>190
man ascii
192190:04/01/17 17:36
うちのリッチテキストエディタでは目出度く ^L で改ページになりやした。
これで良いか。
193名無しさん@お腹いっぱい。:04/04/30 15:39
1はどこいった?
ぬるぽ
>>194 がっ
196名無しさん@お腹いっぱい。:04/11/29 22:07:56
このエディタ使ってみたいんだけど
誰かソース持ってない?
197名無しさん@お腹いっぱい。:2005/05/11(水) 18:37:25
上におなじく
198名無しさん@お腹いっぱい。:2005/09/08(木) 13:24:18
俺もほしい
これをベースにみんなで言いの作れば>>1も喜ぶんじゃないか
199名無しさん@お腹いっぱい。:2005/09/27(火) 23:50:53
俺も参加したい!!!みんなで作るのって面白そ
200名無しさん@お腹いっぱい。:2005/09/27(火) 23:55:48
>>196-199
同一人物ですか。
201名無しさん@お腹いっぱい。:2005/09/28(水) 00:24:29
要素技術はここ見ればオッケーかな?

ttp://www.kmonos.net/alang/texted/
202名無しさん@お腹いっぱい。:2005/09/30(金) 22:01:10
>>200
いや、違うw
203名無しさん@お腹いっぱい。:2005/09/30(金) 22:18:41
xyzzyを移植してくれ
204名無しさん@お腹いっぱい。:2005/10/01(土) 10:26:58
emacs があるってのに?
205名無しさん@お腹いっぱい。:2005/10/01(土) 13:33:40
オレも参加したい…
誰かベースとなるソースupしてくだだい
206名無しさん@お腹いっぱい。:2005/10/01(土) 14:53:30
つ Hemlock
207名無しさん@お腹いっぱい。:2005/10/01(土) 15:04:24
そうじゃないだろ
208名無しさん@お腹いっぱい。:2005/10/01(土) 19:54:28
つ Geadow
209名無しさん@お腹いっぱい。:2005/10/01(土) 22:33:28
>>202
違うと答えたのは 202 一人だけだった。〜続く〜
210名無しさん@お腹いっぱい。:2005/10/02(日) 09:05:14
>>209
ヒント: 馬鹿はスルーされる
211名無しさん@お腹いっぱい。:2006/08/21(月) 23:55:07
 
212名無しさん@お腹いっぱい。:2006/09/18(月) 21:00:44
このスレには今俺様しかいないようだ・・・
自作エディタを晒すのなら今のうち・・・か?

Web制作板とマ板で晒したが、何の反応も得られなかったのだが、
本丸のUNIX板で晒しても大丈夫だろうか。
それともこれは何かの罠なのだろうか。
213名無しさん@お腹いっぱい。:2006/09/19(火) 01:38:42
>>212
待ってる
214名無しさん@お腹いっぱい。:2006/10/03(火) 01:20:19
>>212
まだぁ?
215212:2006/10/15(日) 14:51:17
216名無しさん@お腹いっぱい。:2006/10/15(日) 20:48:58
SolarisにマイナーなGUIのエディタをインストールして使う日本人が何人いるんだか。
他のプラットフォームでも動くようにすれば、試す人も出てくると思うけど。
217名無しさん@お腹いっぱい。:2006/10/15(日) 22:07:23
おおー、すばらし。
>>216の言うとおりかもしれないが、こういう物は作る過程で得られる物も
大事なのであって、趣味に意味を問うのは野暮って物よ。
個人的には、きちんとマニュアルが揃っているのが素晴らしいと思いました。
プラグイン開発用のマニュアルが揃っているのも、偉い。
英語版もあるのも○だし、図を使って説明してあるので分かりやすい。
第十六版という事は、身内を使ってテストでもしたのかね。
イヤンなところは/bin以下にインストールされる所。
/opt以下が良かった。個人の趣味かもしれんが。
とりあえずインストールしたよ。
アイコンカワイイね。
環境 uname -a
SunOS 5.9 Generic_118558-21 sun4u sparc SUNW,Sun-Blade-1500
218名無しさん@お腹いっぱい。:2006/10/15(日) 22:11:26
あー、ごめん。
/opt以下にインストールされる訳ね。
ハズカシ。
今のところ問題なく動いてます。ATOK使って。
219名無しさん@お腹いっぱい。:2006/10/15(日) 22:32:54
あー、問題発見。
Astec-X使ってWindowsに画面飛ばしてやると、使えないね。
Windows上のAstec-Xで主筆のアイコンをダブルクリックすると、
solarisローカルの画面に主筆の画面が開いて、
Windows上のAstec-Xの画面じゃ起動しないね。
220212:2006/10/17(火) 23:31:08
講評を頂きありがとうございます。

>>216
Linuxに移植するかどうか、時々考えることもありますが、
行動に移したことはありません。
せめてx86版ぐらいは公開したいとは思っているのですが、
x86版Solaris(欲を言えばSolaris8)をインストールするのが面倒なので、
まだやっていません。

>>217
アイコンにも結構時間を費やしています。

>>219
同じ原因によるものかどうかは解りませんが、似たような問題は把握しています。
主筆を起動すると、毎回常に「初めて起動したときの環境変数」で起動されるため、
二回目以降に別のX端末で起動したり、あるいは異なるロケールで起動したりすると、
不可解な挙動を示します。
第17版で修正します。
221名無しさん@お腹いっぱい。:2006/10/18(水) 05:22:14
おおー、ありがとん。
がんばってちょーよ。
でもあんまり張り切りすぎると疲れちゃうから、
マターリ行くのが良いと思うよ。
学生さんなの?
V250なんて面白いマシン持ってますのう。
222212:2006/10/18(水) 22:32:29
一応社会人です。
二年ほど前に茄子2本分を全部つぎ込んで買いました。
223名無しさん@お腹いっぱい。:2007/05/11(金) 22:51:33
このスレで公開されていたgrapadxってどこかで落とせませんか?
昔使ったのですが、ソースを消してしまったみたいで、
また使いたいのですが、どこかにありませんか?
それか他に軽いエディタでいいのあったら教えてください。
224名無しさん@お腹いっぱい。:2010/04/25(日) 14:05:23
225名無しさん@お腹いっぱい。:2010/10/18(月) 22:53:33
            _
        r-、' ´   `ヽr-、
       ィ7 /l: ハヽハ トヾ    駄スレを沈めることはこの俺が許さん!
        '|l |'´_` ´_ `| ||    信念に基づいて行動する、
        | |´ヒ}   ヒ}`! l|   それを人は正義と言う。
   __ノ゙). 从 l,  _'_.  |从   今俺が行ってることは保守ではない。
 ,_'(_ ノ_ヽ ヾl.> - ,イ;リ    正義という名の粛清だぁ!
 { f:テ} {'f:テ}',/\ヽ--//ヽ    
 ヽ,r─‐ 、ィ .、、 i l>Y<! i '、    バーニング!
 / iゝ_ノ iヽ /l   |l  l   ',
 lンヽ/ムノじ
226名無しさん@お腹いっぱい。:2012/01/12(木) 15:13:23.73
日本語のエディタを作るには文字コードの知識が必要なんですか?
227名無しさん@お腹いっぱい。:2012/01/12(木) 15:20:55.64
必要ないと思うんですか?
228名無しさん@お腹いっぱい。:2012/01/19(木) 16:22:39.10
コンソールで動くものを1から作るにはマルチバイト文字を一文字と認識する必要があると思うんですが、
wchar_tだと通常の文字列と互換性がありません
(wcstombsを使うとサイズが分からない)
229名無しさん@お腹いっぱい。:2012/03/11(日) 08:17:30.37
未だにEUCなの?
230228:2012/07/03(火) 14:53:28.70
すいません、僕が勘違いしていました
wcstombs(NULL,src,0)+1
で必要なバッファサイズが返るとマニュアルページに書いてありました

使っているロケールはUTF-8です
231228:2012/07/05(木) 16:52:11.12
さらにMB_CUR_MAXというマクロがPOSIXにありました
現在のロケールの一文字あたりの最大バイト数を返すそうです
232名無しさん@お腹いっぱい。:2013/03/01(金) 11:33:13.83
内部で扱う文字コードは自分仕様でいい。
読み込みと保存の際に既成の文字コードと変換すればそれで何も問題ない。
233名無しさん@お腹いっぱい。
a