エディタ作ったよ!見てみて! (240レス)
上下前次1-新
1(32): エディタ作ってる人 [] 01/12/14 01:43 AAS
外部リンク[tgz]:www.geocities.co.jp
コンソール上で動く、GRAPADという名前のエディタをつくっています。
僕自身初心者なので(UNIX歴半年)、まだまだ未熟ですが、これからもっと
いろいろな機能を付けていきたいと思っています。
cursesを使って、メニューやダイアログボックスも使えますから、難しい設定はいりません。
以下の環境でコンパイルと実行を確認しました。
VineLinux2.1.5のGnomeターミナル
VineLinux2.1.5のコンソール
RedHatLinux7.1のGnomeターミナル
FreeBSD(98)4.3のコンソール(ダイアログの枠線が化けます)
2(4): エディタ作ってる人 [] 01/12/14 01:46 AAS
コンパイルと実行の方法は、
#tar -zxvf grapad03.tgz で展開して、
#cd grapad03 でディレクトリに入って、
#make とやると、実行ファイルができます。
#./grapad で実行できます。
3(2): 名無しさん@お腹いっぱい。 [sage] 01/12/14 01:53 AAS
ソースを参考にしようと思ったんだけど、
C++をC風に書くなよダセェ
よって、viできまり。こいつはゴミ。
4: エディタ作ってる人 [] 01/12/14 01:57 AAS
>>3
それで、動かしてみてくれましたか?
ちゃんとコンパイルできますか?
5(3): 名無しさん@お腹いっぱい。 [sage] 01/12/14 02:05 AAS
批判するだけなら猿でも出来る。
とりあえずKondara 2.1 Beta2でコンパイルが通ることを確認。
Tera Termから起動したら「白黒端末では使えません。」
と言われたので試してない。
6(2): 名無しさん@お腹いっぱい。 [sage] 01/12/14 02:12 AAS
>>5
curses が $TERM を見てんのかな?
7(1): エディタ作ってる人 [] 01/12/14 02:14 AAS
>>5
ありがとうございます!!
基本的にカラーで表示する事を前提にしているので、
白黒だと起動できません。
強調表示とか検索とか、あとショートカットキーとか、
とりあえず書いただけで使えない機能がまだあるので、
その辺は文句言わないでください。
とりあえず今は検索機能を作るため、BM法とKMP法という
アルゴリズムを勉強しています。
8: gchar ネムー [age] 01/12/14 02:14 AAS
ktermでちゃんと動いたよ。
gnome-terminal では動かなかったです。当方turbo
readmeでは動くらしいんだけど、
がんばれー
9: 3 [sage] 01/12/14 02:14 AAS
>>5
いや、フィードバックもしようと思って今Makefileを
マクロ使って書き直してたんだけど、なんかエラーになるからやめた(笑)。
FreeBSD 4-STABLE, コンパイル通ってkterm上でさらにscreenの上で動いたよ。
F2押してもキーコードが入るだけだったけど。Alt+F2か?
10: エディタ作ってる人 [] 01/12/14 02:19 AAS
えーとですね、ktermでも動くんですけど、ファンクションキーがだめなんですよ。
本当はメニューはalt+何かで選べるようにしたいんですけど、
altキーの入力を知る方法がわからないんです。
11: 名無しさん@お腹いっぱい。 [sage] 01/12/14 02:39 AAS
FreeBSD(98)4.3でコンパイル通ったしbetermで動いたよ。
枠がおかしいのかどうかは確認してないけど。
ただbeterm自体が日本語通らないからメニューに何が書いてあるやらさっぱり。
勘で終了させた。英字表記が理解しづらいよ。sageが何かまだ分からない。
12(1): 名無しさん@お腹いっぱい。 [] 01/12/14 02:43 AAS
Vine-2.1 LinuxPPCでコンパイルしました。
コンパイルはうまくいったと思います。実行ファイルは出来てるので(何せ初心
者なもので良く分からない)。
でも
./grapadをすると
zsh: segmentation fault ./grapad
でうまく行きません。grapadを実行後lsコマンドを実行すると表示が滅茶苦茶に
なります。
kterm、xterm、gnome-terminalで駄目でした。
うーん。何がいけないんだろう。
『初心者にはお勧めできない』
ですかね・・・シュン・・・
13: 1 [sage] 01/12/14 02:46 AAS
segmentation faultはこちらのバグです。
メモリの変な領域にアクセスすると出るようです。
本当は僕も含めて、初心者が使いやすいように作ったんですがね…
14: 1 [sage] 01/12/14 02:49 AAS
あと、メニューのageとかsageとかは気にしないで下さいw
ショートカットキーの表示をしてあるのですが、まだその機能が無いので
適当に書いてあるだけです。
15: 奈々さん [] 01/12/14 03:01 AAS
記念きねん
がんばってvi,emacs越えてな。
16(1): 名無しさん@お腹いっぱい。 [] 01/12/14 03:04 AAS
ktermの問題は
termcap (この場合は terminfoか) が知っているファンクションキーの
シーケンスと実際のシーケンスが違うせいだと思う。
cat とかやって、ファンクションキーを押して生のシーケンス見てみ。
infocmp kterm とやって出てくる値と違うだろ。
解決方法はしらないけど、
terminfo を書き換えるってのが妥当じゃないかね。
それと、ktermではXresourcesにこれを追加しとけ:
KTerm*VT100*EightBitInput: false
これで Alt+ほげ が ESC + ほげ のシーケンスで送られるようになる。
17: 12 [] 01/12/14 03:12 AAS
>>1みたいな人はなんか応援したくなる。
頑張ってくださいね。
18(1): 名無しさん@お腹いっぱい。 [] 01/12/14 04:04 AAS
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: 名有りさん@お腹へった ◆fSunOs.U [sage] 01/12/14 04:28 AAS
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(2): 名無しさん@お腹いっぱい。 [sage] 01/12/14 06:29 AAS
>>16
Alt+ほげ って本当は [0x80-0x9F] (C1 control code) で、
8bit 通らない場合は [ESC] [0x00-0x20] だったような。
最近は違うのかな。
まぁ多くの実装は ESC XX なんだけど。
21(2): 名無しさん@お腹いっぱい。 [] 01/12/14 07:17 AAS
外部リンク[html]:www.factory.gr.jp
を参考に以下のように書き換えて
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: 21 [sage] 01/12/14 07:25 AAS
本題と外れるんで sage ですが……
FreeBSD っていつになったらまともな termcap になるんだろ。
NetBSD とかが使ってる 外部リンク:www.tuxedo.org
あたりの使えばすむと思うんだけどなぁ… esr 嫌いなのかな?(w
23: 名無しさん@お腹いっぱい。 [sage] 01/12/14 07:43 AAS
FreeBSDのeeみたいな感じだね〜
24: 名無しさん@お腹いっぱい。 [sage] 01/12/14 08:12 AAS
「秀丸 for Unix ほしい」って声がけっこうあるから、
そういうの目指したら?
25: 名無しさん@お腹いっぱい。 [sage] 01/12/14 08:39 AAS
>>20
kterm上からximで日本語入力すると C1 control code は
日本語文字になっちゃうのよ。
日本語入力しないなら (emacsみたく自前でIM持つとか) 別にいいんだけど
たぶん>>1の様子だとそうじゃなさそう
上下前次1-新書関写板覧索設栞歴
あと 215 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.522s*