正在写一个代码编辑器,Windows/Mac平台的,vim/emacs党请略过 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
missdeer
V2EX    分享创造

正在写一个代码编辑器,Windows/Mac平台的,vim/emacs党请略过

  •  
  •   missdeer 2013-08-21 09:18:31 +08:00 8616 次点击
    这是一个创建于 4442 天前的主题,其中的信息可能已经有所发展或是发生改变。
    基本功能做了一半了,等剩下一半基本功能完成了就到v2ex和twitter上散去~

    几步走:
    1,基本功能,简单说来就是notepad++ clone并FTP/SFTP
    2,增强功能,支持TextMate bundles、支持流行的SCM工具如svn,git,mercurial等
    5,高级功能,支持代码阅读时与SCM rev绑定的comments,集成PasteBin/paste.kde.org/gist,集成clang analyzer,支持Windows search进行全文搜索



    第 1 条附言    2013-08-21 14:01:09 +08:00
    确实没想到多显示器的情况,感觉很实用啊。之前我还一直只看到这种分屏编辑的情况:
    第 2 条附言    2013-08-22 13:45:49 +08:00
    依 @qiuai 的建议,左右双栏分屏编辑
    第 3 条附言    2013-09-14 10:15:28 +08:00
    又有些日子没写代码了
    第 4 条附言    2013-09-16 14:41:45 +08:00
    作为一个代码编辑器,默认得使用等宽字体,Linux用Monospace,Mac用Menlo,Windows用Consolas,这大概是尽量保证每个系统都默认安装有的字体了。
    第 5 条附言    2013-09-16 16:41:25 +08:00
    Windows上的字体渲染貌似就是不如Linux或Mac上好看啊,这是分别用Consolas,FixedSys,Monaco,Source Code Pro四种字体的样式。
    Consolas:

    FixedSys:

    Monaco:

    Source Code Pro:
    第 6 条附言    2013-09-16 20:46:24 +08:00
    Menlo看起来也很一般
    50 条回复    1970-01-01 08:00:00 +08:00
    cxshun
        1
    cxshun  
       2013-08-21 09:22:31 +08:00
    杜蕾斯?是我邪恶了吗?
    楼主牛叉。这段时间也要抽时间做做那个爬煎蛋妹子图的东西罗。
    yanwen
        2
    yanwen  
       2013-08-21 11:44:42 +08:00
    可以增加MD么??
    missdeer
        3
    missdeer  
    OP
       2013-08-21 12:29:14 +08:00
    @yanwen 呃,弱弱地问,哪个MD?
    GordianZ
        4
    GordianZ  
       2013-08-21 12:39:25 +08:00
    @missdeer Markdown...
    fangzhzh
        5
    fangzhzh  
       2013-08-21 12:45:34 +08:00
    vim/emacs党怒回一帖,努赞一个
    infinte
        6
    infinte  
       2013-08-21 12:47:47 +08:00
    能不能换成 monospace 字体……
    UI 我这里有张 mockup:http://phenacenn.deviantart.com/art/Maari-Text-editor-UI-318796008
    界面库用 vczh 的 gacui 做,效果拔群
    qiuai
        7
    qiuai  
    PRO
       2013-08-21 12:56:49 +08:00   1
    说说我想要的功能.
    1.Notepad++的基本功能,比如说括号匹配,代码高亮.保存为不同编码,之类的编程用编辑器的基本功能.
    2.界面设计功能,比如说修改编辑区的背景颜色,字体颜色,大小,字体,等.
    3.FTP/SFTP的实时连接,保存,编辑,删除等.麻烦做的好看好用一点.Notepad++的FTP很无语.
    4.双tab并排,或者4tab并排.用来对比代码或者同时写HTML+CSS.
    5.操作栏图标不要这么大.只要不会出现小到会按到旁边的就可以.Notepad++的目前就不算小.
    6.请把tab转换为空格做成开关.不要强制.谢谢.我不喜欢4个空格代替tab,因为排版不好看.除非你可以再在打开的时候把四个空格变成tab....
    7.可以内置一些简单的模版,比如说HTML的

    <!DOCTYPE>
    <html>
    <head>

    </head>
    <body>

    </body>
    </html>


    这样,新建的时候,直接显示这些出来.这样更方便.这个好像有点偏IDE了.


    好像暂时就这些......期待大作.
    luikore
        8
    luikore  
       2013-08-21 13:07:59 +08:00
    gtk? mac 上绝对没人用基于 gtk 的界面的
    luikore
        9
    luikore  
       2013-08-21 13:10:21 +08:00
    是 qt 么? 工具栏其实可以喀嚓掉...
    saharabear
        10
    saharabear  
       2013-08-21 13:17:56 +08:00
    我觉得挺好。

    不过为什么要vim/emacs党略过? vim/emacs党更多的是各种编辑器都会根据需要去用的。
    missdeer
        11
    missdeer  
    OP
       2013-08-21 13:48:15 +08:00
    @GordianZ
    @yanwen
    Markdown编辑时高亮之类的容易,要预览甚至实时预览可能困难点

    @infinte 既然是Notepad++,字体是可以自定义的嘛

    @saharabear Qt的,Mac上除了包体积大,UI上跟原生的差不多,工具栏可以加个开关显示/隐藏

    @qiuai 123是肯定的,4确实没想过,是个好思路,5到时候应该会请个旁边的美工妹子重新设计一套,6肯定是可以自定义的,7可以考虑
    qiuai
        12
    qiuai  
    PRO
       2013-08-21 13:50:44 +08:00
    @missdeer 我现在是双显示器,但是Notepad++只能开一个,所以对比或者同时写两个页面的时候,就要来回切换,巨麻烦. 7这个好像IDE都有,但是notepad++之类的都没有...这个很方便啊.省不少事的.
    missdeer
        13
    missdeer  
    OP
       2013-08-21 13:59:22 +08:00
    @qiuai 嗷嗷,很久前也听别人说过多显示器编辑的问题,我一直只用一个显示器的,确实忽视了。
    qiuai
        14
    qiuai  
    PRO
       2013-08-21 20:51:12 +08:00
    @missdeer 嗯..要是能做的这么漂亮...花钱我也买了....
    SharkIng
        15
    SharkIng  
       2013-08-21 21:06:41 +08:00
    @qiuai 弱弱问一下你这个是什么编辑器??
    meta
        16
    meta  
       2013-08-21 21:11:43 +08:00
    @qiuai 你这就是个终端啊,跟编辑器有啥关系?
    ijse
        17
    ijse  
       2013-08-21 22:02:05 +08:00
    那一排工具栏按钮,个人从来不用,更喜欢sublime的简洁之道。

    希望楼主多参考sublime text~~
    qiuai
        18
    qiuai  
    PRO
       2013-08-21 22:17:35 +08:00
    @SharkIng @meta 这不是编辑器...我只是想说一下我喜欢这种效果...
    CoX
        19
    CoX  
       2013-08-22 13:51:47 +08:00
    @qiuai 7 emeditor有
    qiuai
        20
    qiuai  
    PRO
       2013-08-22 14:14:40 +08:00
    @CoX 不想换.要换的话我就随便找个IDE了
    jjgod
        21
    jjgod  
       2013-08-22 22:10:10 +08:00
    截图里的脚本应该用 cp -R 而不是 cp -r, 在 OS X 下 cp -r 不能保留 symlink,所以复制 framework 的时候一般都应该用 cp -R。
    missdeer
        22
    missdeer  
    OP
       2013-08-23 08:41:43 +08:00
    @jjgod 受教!
    maxiaojun
        23
    maxiaojun  
       2013-08-23 14:46:14 +08:00
    如果是 Qt 何不支持 Linux ?
    missdeer
        24
    missdeer  
    OP
       2013-08-23 14:52:45 +08:00
    @maxiaojun 不是不支持,而是略过不说,感觉Linux党应该不会用这类东西。
    maxiaojun
        25
    maxiaojun  
       2013-08-23 14:57:25 +08:00
    @missdeer 我就想用啊…

    别把Vim/Emacs这两跨平台编辑器和Linux绑定起来好不?

    Vim最早的平台是AmigaOS,Emacs也起源于非Unix系统。
    missdeer
        26
    missdeer  
    OP
       2013-08-23 15:16:41 +08:00
    @maxiaojun 好吧,其实上面第2张截图就是在Win7上用Xming通过SSH X11 forwarding运行CentOS上的程序的样子,三种系统目前都没问题。
    itaotao
        27
    itaotao  
       2013-08-24 10:11:16 +08:00
    看着还不错的样子 楼主用啥语言写的
    josephshen
        28
    josephshen  
       2013-08-24 10:20:18 +08:00
    Qt做的界面?
    josephshen
        29
    josephshen  
       2013-08-24 10:21:22 +08:00
    只要有人做UI设计,美化相对很容易的。
    ruoyu0088
        30
    ruoyu0088  
       2013-08-24 10:26:58 +08:00
    @qiuai Notepad++开多个窗口的方式和流行的浏览器,例如firefox的方式一样,只需要用鼠标把Tab拖到窗口外面就可以了。

    至于模板,安装一个Snippet插件就可以了。
    Notepad++还有一个Python插件可以用Python写扩展,所以基本上扩展性是足够的。
    qiuai
        31
    qiuai  
    PRO
       2013-08-24 11:32:11 +08:00
    @ruoyu0088 原来有了啊,谢谢~
    coolcfan
        32
    coolcfan  
       2013-08-26 14:34:41 +08:00
    楼主专注使用推特上妹子的ID当软件名字三十年。。。
    AstroProfundis
        33
    AstroProfundis  
       2013-08-26 14:40:53 +08:00
    楼上+1
    yangff
        34
    yangff  
       2013-09-14 14:58:15 +08:00
    界面比较难看……
    字体和代码编辑器硬伤……写代码用非等宽的字体会让强迫症患者一秒钟也看不下去。
    missdeer
        35
    missdeer  
    OP
       2013-09-14 20:52:16 +08:00
    @yangff 这确实是个问题,看来配置文件也得能根据不同平台做不同设置了。。。
    hustlzp
        36
    hustlzp  
       2013-09-14 21:05:10 +08:00
    能做编辑器的都是牛人,顶一个。
    yangff
        37
    yangff  
       2013-09-16 20:46:33 +08:00
    字体渲染可以自带freetype……
    sgissb1
        38
    sgissb1  
       2013-09-16 21:51:41 +08:00
    “简单说来就是notepad++ clone并FTP/SFTP”

    这句话没看懂

    另外你拿什么语言做?不同开发语言,开发周期是不同的,另外什么界面库?求带一起搞。
    sgissb1
        39
    sgissb1  
       2013-09-16 21:53:06 +08:00
    从截图上看,应该是c++,用了QT。

    不过还是没搞懂你说的那句话。哈哈哈。如果你不是从notepad++改代码的话,字符串解析你不累吗?
    missdeer
        40
    missdeer  
    OP
       2013-09-16 23:08:08 +08:00 via iPhone
    @sgissb1 意思是 notepad++ clone加ftp/sftp功能,因为我原本以为notepad++没有ftp功能。
    绝对没有抄notepad++的代码,它基本上是用windows sdk写的,我要的是能在mac和linux上跑的,抄不了。
    sgissb1
        41
    sgissb1  
       2013-09-17 11:15:48 +08:00
    @missdeer 干嘛你会认为我在说你抄呢?基于他的上面做二次开发也行的。。。。

    不过我确实很好奇,你做字符串解析你怎么做。尤其是语法这块。
    missdeer
        42
    missdeer  
    OP
       2013-09-17 12:14:24 +08:00
    @sgissb1 用第三方控件Scintilla实现,不用自己弄。
    qiuai
        43
    qiuai  
    PRO
       2013-09-17 12:24:31 +08:00
    @missdeer 来一份试试咋样...
    Q:39831817
    sgissb1
        44
    sgissb1  
       2013-09-17 12:48:16 +08:00
    @missdeer 求带啊,我主要做win的,顺便也能一起熟悉mac环境的开发
    missdeer
        45
    missdeer  
    OP
       2013-09-17 14:31:14 +08:00
    @sgissb1 不打算开源,所以抱歉了。
    sgissb1
        46
    sgissb1  
       2013-09-17 16:07:09 +08:00
    @missdeer 没事,刚好最近有事做。
    darklowly
        47
    darklowly  
       2013-09-18 11:54:31 +08:00
    @missdeer 我看这造型 好像就是Scintilla
    alexrezit
        48
    alexrezit  
       2013-09-18 12:15:47 +08:00
    好丑... 怎么像用 Java 做的...
    frogs
        49
    frogs  
       2013-09-18 12:40:29 +08:00
    做一个编辑器需要相当的毅力,希望楼主能做个精品出来。
    yeahren
        50
    yeahren  
       2013-09-18 15:54:14 +08:00
    略。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2818 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 13:30 PVG 21:30 LAX 06:30 JFK 09:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86