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

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のコンソール(ダイアログの枠線が化けます)
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応援さげ
NGNG
>>1
vectorみたいな使い方もできるけど、肝はcvsだと思う。
ようするに、あなたが指定したメンバーにソースを自由にいじらせる
(といっても履歴つきだから、後から戻そうと思えばもどせる) ことができる。

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

今はundoをずっとやってるんですが、どうも元にもどす位置がずれてしまいます。
もうじき冬休みなので、そうしたら時間をかけてみなおしたいと思います。
172170
垢版 |
NGNG
>>1
いや、ソース公開してるんだから独自方式より、皆に分かる方が
いいかなぁとか思ったりしたわけです。
まぁ「ソース公開してんだからテメェでやれ」と言われるとアレですが。
173山崎渉
垢版 |
NGNG
(^^)
NGNG
ねえ、元気? 風邪引いてない?
NGNG
気長に待ち。
完成はサグラダ・ファミリアと一緒くらいか〜。
176厨房
垢版 |
NGNG
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厨房
垢版 |
NGNG
続き

"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厨房
垢版 |
NGNG
liner.hの"CLiner::Init(int, int, int, int)"
に戻り値として0を返すよう付け加えたらコンパイルは通ったが、
core吐いて落ちた。
以上

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

http://www.atmarkit.co.jp/icd/root/79/49634379.html
NGNG
>>190
man ascii
192190
垢版 |
NGNG
うちのリッチテキストエディタでは目出度く ^L で改ページになりやした。
これで良いか。
193名無しさん@お腹いっぱい。
垢版 |
NGNG
1はどこいった?
NGNG
ぬるぽ
NGNG
>>194 がっ
196名無しさん@お腹いっぱい。
垢版 |
NGNG
このエディタ使ってみたいんだけど
誰かソース持ってない?
197名無しさん@お腹いっぱい。
垢版 |
2005/05/11(水) 18:37:25
上におなじく
198名無しさん@お腹いっぱい。
垢版 |
2005/09/08(木) 13:24:18
俺もほしい
これをベースにみんなで言いの作れば>>1も喜ぶんじゃないか
199名無しさん@お腹いっぱい。
垢版 |
2005/09/27(火) 23:50:53
俺も参加したい!!!みんなで作るのって面白そ
2005/09/27(火) 23:55:48
>>196-199
同一人物ですか。
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を移植してくれ
2005/10/01(土) 10:26:58
emacs があるってのに?
205名無しさん@お腹いっぱい。
垢版 |
2005/10/01(土) 13:33:40
オレも参加したい…
誰かベースとなるソースupしてくだだい
2005/10/01(土) 14:53:30
つ Hemlock
2005/10/01(土) 15:04:24
そうじゃないだろ
2005/10/01(土) 19:54:28
つ Geadow
2005/10/01(土) 22:33:28
>>202
違うと答えたのは 202 一人だけだった。〜続く〜
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
待ってる
2006/10/03(火) 01:20:19
>>212
まだぁ?
215212
垢版 |
2006/10/15(日) 14:51:17
http://www.vector.co.jp/soft/unix/writing/se365013.html

何とでも言え
2006/10/15(日) 20:48:58
SolarisにマイナーなGUIのエディタをインストールして使う日本人が何人いるんだか。
他のプラットフォームでも動くようにすれば、試す人も出てくると思うけど。
2006/10/15(日) 22:07:23
おおー、すばらし。
>>216の言うとおりかもしれないが、こういう物は作る過程で得られる物も
大事なのであって、趣味に意味を問うのは野暮って物よ。
個人的には、きちんとマニュアルが揃っているのが素晴らしいと思いました。
プラグイン開発用のマニュアルが揃っているのも、偉い。
英語版もあるのも○だし、図を使って説明してあるので分かりやすい。
第十六版という事は、身内を使ってテストでもしたのかね。
イヤンなところは/bin以下にインストールされる所。
/opt以下が良かった。個人の趣味かもしれんが。
とりあえずインストールしたよ。
アイコンカワイイね。
環境 uname -a
SunOS 5.9 Generic_118558-21 sun4u sparc SUNW,Sun-Blade-1500
2006/10/15(日) 22:11:26
あー、ごめん。
/opt以下にインストールされる訳ね。
ハズカシ。
今のところ問題なく動いてます。ATOK使って。
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版で修正します。
2006/10/18(水) 05:22:14
おおー、ありがとん。
がんばってちょーよ。
でもあんまり張り切りすぎると疲れちゃうから、
マターリ行くのが良いと思うよ。
学生さんなの?
V250なんて面白いマシン持ってますのう。
222212
垢版 |
2006/10/18(水) 22:32:29
一応社会人です。
二年ほど前に茄子2本分を全部つぎ込んで買いました。
2007/05/11(金) 22:51:33
このスレで公開されていたgrapadxってどこかで落とせませんか?
昔使ったのですが、ソースを消してしまったみたいで、
また使いたいのですが、どこかにありませんか?
それか他に軽いエディタでいいのあったら教えてください。
224名無しさん@お腹いっぱい。
垢版 |
2010/04/25(日) 14:05:23
http://zzz.zoku-sei.com/
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ンヽ/ムノじ
2012/01/12(木) 15:13:23.73
日本語のエディタを作るには文字コードの知識が必要なんですか?
2012/01/12(木) 15:20:55.64
必要ないと思うんですか?
2012/01/19(木) 16:22:39.10
コンソールで動くものを1から作るにはマルチバイト文字を一文字と認識する必要があると思うんですが、
wchar_tだと通常の文字列と互換性がありません
(wcstombsを使うとサイズが分からない)
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にありました
現在のロケールの一文字あたりの最大バイト数を返すそうです
2013/03/01(金) 11:33:13.83
内部で扱う文字コードは自分仕様でいい。
読み込みと保存の際に既成の文字コードと変換すればそれで何も問題ない。
2015/02/19(木) 23:46:38.96
a
234名無しさん@お腹いっぱい。
垢版 |
2015/05/09(土) 17:47:48.49
UNIXのファイルが編集され時ペルミスシオンを対抗する何は手段ります馬?
2015/12/10(木) 00:02:12.70
ハゲ侍 サブコミュ イケメン スカイプ マリリンマンソン Twitter マリオ64 ゲーム実況者 マリオカート
ハゲ侍 ツイッター 星のカービィ64 マリオサンシャイン ニコニコ超会議 ポケモン フレコ MH4G アメブロ
ハゲ侍 アメーバブログ 仕事 Skype ツイキャス モンハン 歌い手 スプラトゥーン マニアック
ハゲ侍 動画 顔 ドリームクラブ 好き 刃牙 サイレントヒル ドラゴンボール イケボ
ハゲ侍 漫画 フレンドコード NG縛り ニコニコ生放送 歌ってみた 太刀 ニコニコ超パーティー コミュニティ
ハゲ侍 大学 アキネーター 配信 ニコ生 サブコミュ マリリンマンソン イケメン 学歴
ハゲ侍 マリオカート Twitter スカイプ マリオ64 ツイッター ゲーム実況者 星のカービィ64 ニコニコ超会議
ハゲ侍 ポケモン マリオサンシャイン フレコ MH4G アメーバブログ 仕事 Skype ツイキャス
ハゲ侍 モンハン 歌い手 マニアック 動画 アメブロ スプラトゥーン 刃牙 ドリームクラブ
ハゲ侍 好き サイレントヒル ドラゴンボール 漫画 顔 NG縛り フレンドコード ニコニコ生放送
http://kanae.2ch.net/test/read.cgi/pcqa/1421101110/51
http://kanae.2ch.net/test/read.cgi/pcqa/1415921104/55
http://kanae.2ch.net/test/read.cgi/pcqa/1436852775/17
2016/05/02(月) 19:25:51.53
省略語は嫌いだ。それは電子エディタ。電子エディタとエディタは違う。
エディタと言ったら編集者のこと。勝手に電子を省略しないように。
237名無しさん@お腹いっぱい。
垢版 |
2017/12/29(金) 08:58:45.89
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

J0HLW5FQGR
レスを投稿する

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

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