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

1エディタ作ってる人
垢版 |
NGNG
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のコンソール(ダイアログの枠線が化けます)
NGNG
>>65
あいだをとってPythonというのは?
67名無しさん@お腹いっぱい。
垢版 |
NGNG
>>65-66
vimだとperl/ruby/python/tclが使えちゃうんだよねぇ
NGNG
ここはマニアックにHaskell/Prolog/Smalltalkとか。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


NGNG
試しにいれてみますた。

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

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

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

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

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

term.c, input.c あたりが参考に…ならないかも(w
122名無しさん@お腹いっぱい。
垢版 |
NGNG
NGNG
ほっほっほっ・・・エディタを極めるものはアプリケーションを極める、じゃ・・・
NGNG
>>49
入れてないので流して聞いてください、スマソ。
寺はSetup->WindowにあるFull colorでカラーが使えると思ったんだけど…。
125
垢版 |
NGNG
で、どうなった? >>1
NGNG
1よ、やってんのか?
NGNG
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名無しさん@お腹いっぱい。
垢版 |
NGNG
>>127>>1
NGNG
age
130名無しさん@お腹いっぱい。
垢版 |
NGNG
つくってくれよ
131
垢版 |
NGNG
すいません、長いことほったらかしてました。
X用のエディタ作ろうと思ってXtとGtk+を勉強したりしてました。
NGNG
期待sage
133
垢版 |
NGNG
しばらくsageでいってください。
ソースまで読んでる人いるかどうか知りませんが、
文字列を保持しているCChainというクラスを全面的に書き直しているところです。
これでスクロールが大幅に早くなる・・・かも。
NGNG
戻ってきたか。期待してるぞ。

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

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

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

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

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

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

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

>>146
grapadも近いうちに手を入れます。grapadxもそのつもりで作っていますから。
そのために内部で文字情報を保持しているchainというクラスは、
純粋なC++のみでライブラリに依存しないように作っています。
あとはユーザインターフェースをかぶせれば、GTKでなくとも
QTだろうがMFCだろうがCursesだろうが、なんにでも対応できます。
NGNG
結構下がってきたのでそろそろ上げますか
NGNG
うむ、楽しみだ。
俺自身はviもEmacsもむしろ好きなので使うことは無いだろうが、初心者にと
りあえず使ってなって言えるエディタがないからねえ。
キラーアプリの可能性すら秘めてるジャンルだけに、超期待。
NGNG
>>149
viやemacsはわけわからんからun*xはクソ、とか言うヤシに
「grapad使えやゴルァ!」と言えるようになるといいなあ。
NGNG
vimでもEmacsでもメニューがついてるから、初心者でも問題ないとおもうが。
NGNG
>>151
でも、どちらにしてもある程度使い込まないと便利じゃない(むしろ不便)
というのは事実かと。
NGNG
vi系はモードの違いを意識できるようになるまでが大変だし、Emacsはエディ
タという枠を越えてるからな。
もし議論がしたいなら別スレでやってくれ。
154143
垢版 |
NGNG
またも 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
垢版 |
NGNG
あと、バグ発見。
起動したあとなにか文字をタイプして、いったん 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
垢版 |
NGNG
それからクリップボードがどうも X と連携してないみたいです。
Mozilla のように、X的なインターフェイス (選択した部分を真ん中ボタンではりつけ) と
Windows的なインターフェイス (明示的にコピー・ペーストを指示する) が
ミックスされてるとうれしいなあ。

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

>>141を見よ

つうか、なんで sf.net とか使わんの?
NGNG
sfのやり方に沿ってやらなきゃいかんのが面倒だからじゃないの?
一度慣れてしまえばどうって事はないんだろうけど。
NGNG
>>157
-Wall付けとけ(ソースを見ずにパピコ
163名無しさん@お腹いっぱい。
垢版 |
NGNG
>>160
サンクス。
でも展開してmakeしたらエラー沢山出たんで、嫌になって止めちまった。
cursesでどうやって日本語使うのか知りたかったんだが…
164
垢版 |
NGNG
sfってsourceforgeの事ですよね?vectorのunix版みたいな感じなのかな・・・?
ちょっとのぞいてみましたが、なんだか面倒そうですね。
NGNG
もうすぐ1年
まったり良スレ
1応援さげ
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況