V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
missdeer
V2EX  ›  分享创造

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

  •  
  •   missdeer · 2013-08-21 09:18:31 +08:00 · 8103 次点击
    这是一个创建于 4106 天前的主题,其中的信息可能已经有所发展或是发生改变。
    基本功能做了一半了,等剩下一半基本功能完成了就到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  
    MOD
       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  
       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  
       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  
       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  
       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  
       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  
       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  
       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   ·   实用小工具   ·   2524 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:33 · PVG 10:33 · LAX 18:33 · JFK 21:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.