有人试过自己写文本编辑器的吗~~~~~~

C、C++和Java语言
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

有人试过自己写文本编辑器的吗~~~~~~

#1

帖子 liu滔 » 2011-02-06 16:26

看到这个标题,我猜很多人又想到了``不要重复发明轮子''这句话去了。不过我觉得我可不是在重复发明轮子,因为我只是在锻炼自己的能力,考验自己的知识的极限。如果你叫我去看那些现成的文本编辑器的源代码,我会被气个半死,因为我基本上没什么耐心和信心能看懂它们,所以只好自己实践一下,看看一个文本编辑器到底是什么样子的。 :em02 本人愚昧,目前只能做一个很简陋的面向行的文本编辑器(还不知道算不算面向行呢~ :em06 ),不知道各位做过这种事吗? :em09
头像
momova
帖子: 3382
注册时间: 2007-07-11 21:43
系统: archlinux
来自: 东江边
送出感谢: 15 次
接收感谢: 7 次

Re: 有人试过自己写文本编辑器的吗~~~~~~

#2

帖子 momova » 2011-02-06 17:41

你用什么编写的啊,有空帮改两个撒
我来了,我看见了,我征服了!
求勾搭,不管饭。
头像
racnil
帖子: 288
注册时间: 2008-08-28 8:12
送出感谢: 0
接收感谢: 0
联系:

Re: 有人试过自己写文本编辑器的吗~~~~~~

#3

帖子 racnil » 2011-02-06 18:17

我是这样子滴,现在在写一个游戏的物理引擎。
写着写着就不由自主地想去看其他已经写好的物理引擎的代码,结果一边写着一边的代码已经读得差不多了。
SLAX and Xorg(without any Window Managers)
It's fun!
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 有人试过自己写文本编辑器的吗~~~~~~

#4

帖子 liu滔 » 2011-02-06 23:08

momova 写了:你用什么编写的啊,有空帮改两个撒
用C写的,现在写得还不怎么样,基本不能用——就是将就着用也不行,不过等我完成了再发布 :em05
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 有人试过自己写文本编辑器的吗~~~~~~

#5

帖子 liu滔 » 2011-02-06 23:10

racnil 写了:我是这样子滴,现在在写一个游戏的物理引擎。
写着写着就不由自主地想去看其他已经写好的物理引擎的代码,结果一边写着一边的代码已经读得差不多了。
朋友,能不能分享一点看别人写的代码的经验,还是说你以前经常看别人的代码或者职业有需求什么的? :em06
头像
cjxgm
帖子: 1950
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
送出感谢: 1 次
接收感谢: 30 次
联系:

Re: 有人试过自己写文本编辑器的吗~~~~~~

#6

帖子 cjxgm » 2011-02-07 18:38

用 Windows 的时候就想写了,因为DX9里没有自带编辑框,所以想写一个。Win里至少还能画画什么东西,Lin 里就搞不来了,GTK+ 的什么Drawable 神马滴搞不定……
命令行版的么,似乎没太大难度吧
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

Re: 有人试过自己写文本编辑器的吗~~~~~~

#7

帖子 BigSnake.NET » 2011-02-07 19:29

数据结构大作业的好课题。。。。
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 有人试过自己写文本编辑器的吗~~~~~~

#8

帖子 liu滔 » 2011-02-07 20:46

cjxgm 写了:用 Windows 的时候就想写了,因为DX9里没有自带编辑框,所以想写一个。Win里至少还能画画什么东西,Lin 里就搞不来了,GTK+ 的什么Drawable 神马滴搞不定……
命令行版的么,似乎没太大难度吧
对,命令行版的,比起图形界面当然简单一点,不过想做好也不容易啊~ :em20
尤其是现在能做到的版本一定是一个会将之前的操作的痕迹留在bash的输出上的编辑器~ :em20
好想要类似Windows里面的getch()函数的功能,谁告诉一下~ :em20
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 有人试过自己写文本编辑器的吗~~~~~~

#9

帖子 liu滔 » 2011-02-07 20:49

BigSnake.NET 写了:数据结构大作业的好课题。。。。
:em11 很认可这句话,就因为想那个存储文本内容的数据结构搞得我头都大了,不过还好现在有了初步的解决方案~ :em09 想出了一个挺不错的数据结构来存储文本内容,哈哈~
不过不知道GNU是怎么做到readline函数那样的地步的~ :em03
头像
racnil
帖子: 288
注册时间: 2008-08-28 8:12
送出感谢: 0
接收感谢: 0
联系:

Re: 有人试过自己写文本编辑器的吗~~~~~~

#10

帖子 racnil » 2011-02-07 22:08

liu滔 写了:
racnil 写了:我是这样子滴,现在在写一个游戏的物理引擎。
写着写着就不由自主地想去看其他已经写好的物理引擎的代码,结果一边写着一边的代码已经读得差不多了。
朋友,能不能分享一点看别人写的代码的经验,还是说你以前经常看别人的代码或者职业有需求什么的? :em06
我看代码的经验是这样的:
1、首先心得静下来,正所谓“心中有杂念不得禅”,很多时候自己对一个程序结构有一种自己的偏见,看到了别人写得很奇怪的东西就不禁会产生类似于“需要写得这么复杂吗?”的疑问,这样的话去看代码就不容易理解其深层次的含义。

2、然后是要摸清楚别人写代码的思路,这需要一些些相关软件的基础知识的。比如看一个物理引擎的代码,想要知道别人写这个东西什么思路,就得大体了解一下,一般地来说这个东西应该怎么来实现。这样看到了大堆大堆的头文件之后可以先阅读一下头文件理清一下思路再往下看。大型的工程往往会提供非常详细的在线API函数参考,根据那个API参考也可以顺藤摸瓜,很快就能找到实现某个功能的代码。

3、从头文件开始,一点一点深入。一下就去看别人的实现代码会很吃力的,因为实现的代码往往很长,看着看着就摸不着头脑了。可是我们换位思考一下,如果是我们写这个程序,我们不可能一上来就开使写函数的实现,肯定是要把所有的头文件全写出来再往里一点点地填函数的代码的。
那么我们看代码的时候也可以用这样的思维的。先把我们需要的功能的头文件看一下(当然确定那些头文件是跟需要的功能有关就需要先分析好别人写代码的思路了),手边不妨放一张纸,看看别人写的类的逻辑关系是什么样的,把类型的结构图画出来,再在旁边标上简单的功能注释,然后再到实现文件里面去找别人具体怎么实现的功能。

上面3条就是我看别人的代码的经验,希望对LZ能有一些帮助。因为我是自学程序的,编程也只是兴趣爱好而已,不是我的职业。刚刚开始学写程序的时候尤其是学C++的类与对象的时候看了不少别人的源代码(也走了不少弯路,就是到现在我还是感觉对面向对象的编程有一些吃力,尤其是类型结构的设计,写出来东西之后给别人一看别人总是能说出你这样这样来组织结构能更好一些,可是我之前就想不到……),可能看得多了就比较习惯去看一些别人写的东西了吧。
SLAX and Xorg(without any Window Managers)
It's fun!
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 有人试过自己写文本编辑器的吗~~~~~~

#11

帖子 liu滔 » 2011-02-08 0:03

谢谢10楼的兄台的意见,虽然一时还不能全盘接受,不过我会尽量试着去遵循你的经验的,一起进步吧~ :em11
头像
cjxgm
帖子: 1950
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
送出感谢: 1 次
接收感谢: 30 次
联系:

Re: 有人试过自己写文本编辑器的吗~~~~~~

#12

帖子 cjxgm » 2011-04-10 13:34

liu滔 写了: 尤其是现在能做到的版本一定是一个会将之前的操作的痕迹留在bash的输出上的编辑器~ :em20
好想要类似Windows里面的getch()函数的功能,谁告诉一下~ :em20
用 ncurses 库啊
mr0ant
帖子: 14
注册时间: 2011-04-08 13:57
送出感谢: 0
接收感谢: 0

Re: 有人试过自己写文本编辑器的吗~~~~~~

#13

帖子 mr0ant » 2011-04-10 15:37

从来没有想过。。。
不过我觉得通常要用到一些库的。。。
我突然想起来,好像c语言里面可以直接得到用户的按键。。。。这样也许屏幕上没有显示用户打的东西。不过这样,,,也许就要自己想办法和输入法交流了。。。
不过我这里写了一个五笔输入法的东西,不过是c++的。。。可能不太适用。
我觉得最好的办法是参考别人做的东西,会很有帮助的。否则会很困难。 :em01
notepad++我觉得写的不错,可惜是c++写的。。。
也许gedit可以参考一下。。。
很想看看你的成果。。。呵呵. :em01
mr0ant
帖子: 14
注册时间: 2011-04-08 13:57
送出感谢: 0
接收感谢: 0

Re: 有人试过自己写文本编辑器的吗~~~~~~

#14

帖子 mr0ant » 2011-04-10 15:39

如果做一个英文的编辑器会简单一些。。。我去查查,我记得C语言库函数里面有查用户按键的函数。
mr0ant
帖子: 14
注册时间: 2011-04-08 13:57
送出感谢: 0
接收感谢: 0

Re: 有人试过自己写文本编辑器的吗~~~~~~

#15

帖子 mr0ant » 2011-04-10 15:53

楼主很有才阿,会翻译英文了。。。
回复

回到 “C/C++/Java”