エディタ作ったよ!見てみて! (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*