这是一个 持续更新 的清单,记录我在 各个平台(目前主要是 Windows 、 Linux 和 Android) 的首选 软件 / App / 服务。供我换机或重装系统时 回顾,也供大家参考;也欢迎大家在留言推荐更好的选择。
开发环境部分单开了一篇 《我的开发环境工具清单》。放在一起一是太长,二是语境有点不同,三是目标读者也不同。
选择标准
好用:超级主观的标准。我会谈谈到底哪里好,但不一定适合其他人。
开源:省钱是一方面,但只是一部分原因。
更重要的,第一是 『林纳斯定律』 :一个社区活跃的开源软件,会有更少的 bug,快速的演化,以及几乎不可能有后门。(几乎,并非绝对无后门,参考 Ken Thompson 大神的 『C 语言编译器后门』,最好工具引用的技术也都是开源的)
第二是开源决定了,即使原作者 / 版权方 放弃更新,或者转向闭源,足够活跃的社区依然可以维持开源分支的开发(例如 Hudson > Jenkins, MySQL > MariaDB),开源的软件能使用更长时间,不会因为商业上的原因突然中断。一个开源工具沉寂之时,往往是被另一个更优秀的工具代替了。
拒绝破解:如果一个工具实在没有开源 / 免费 的替代品,那就购买。使用破解软件,一方面存在安全风险,另一方面有违软件开发者的立场。
基于类似原因,推荐大家都到官网下载,谨慎使用所谓的绿化软件。确实有『绿化』需求可以考虑自己用UniversalExtractor 制作。
跨平台一致性:需要在不同的平台上使用软件,已经是一个不可回避的现实。如果两个软件各方面都差不多,我会优先选择跨平台,并 使用体验一致 的。这样会降低 学习 和 来回切换 的成本。
这个清单一开始是 平台 > 需求 > 软件
的结构。后来发现,由于某些优秀跨平台软件的存在,在不同平台下都是同一个选项,会有很多重复内容。后改为 需求 > 软件(备注适用平台)
的结构。
我会标明适用的平台,并且列出是否 免费 / 开源。
一般情况下,只标『免费』默认等同 『闭源免费』,『开源』默认等同 『免费』 (需要指出,实际并不等同,只是开源软件即使收费,大家也可以自行构建,没有收费的基础,大概率是免费的)。如果有软件在开源之余,对分发的版本或者搭建的服务收费,我会特别标明。
平台方面,如果只列出部分平台,一般是指只支持这些平台;反之,如果我只标『跨平台』,意味着除了包括最常见的三个平台(Win / Linux / Mac),还有其他平台,不一一列举。
曾用过的软件如果比较优秀也会列出,当前已经不用或者很少用的,会加上删除线。只有标题的,先占位,慢慢补充。
注意这是一个清单,只列出简介,不涉及用法,另有一篇 小工具专题 分享小工具的使用。
文本编辑器
Markdown
我主要使用 Markdown 作为文档原稿,Markdown 编辑器单独列出。(参见 《为什么你应该用 Markdown 写文档?》 , Markdown 足以应对绝大多数场景。其他标记语言偶尔使用,但要么不如 Markdown 轻巧,要么不如 Markdown 工具支持丰富。日后如果 Markdown 方言陷入兼容性问题,考虑往 AsciiDoc 迁移。)
目前主力 Typora ,Smark 备用,Markdown-Nice 公众号专供。
Typora (Win / Linux / Mac,免费) : 简洁强大的 Markdown 编辑器,当前首选。
优点 : 功能强大,该有都有,导出选项丰富(后端是 pandoc)。界面简洁美观,支持多种写作模式,尽量减少打扰,让你专注在写字这件事上。用它写东西 是一种享受 。需要自己体验。
它在兼容标准 Markdown 基础上,扩展了大量新特性,包括自动目录、MathJax 公式支持、多种图表(序列图、流程图、Mermaid 图)支持等。
缺点 : 好多年一直留在 beta 阶段,但已经很好用,稳定,更新也很勤快,刚支持完 Linux ,马上又推出了 Mac 的支持。非要挑缺点的话,不开源,不排除未来收费的可能。
另外,需要提醒自己 不能依赖它提供的额外特性 ,否则源文件放到别的工具 / 平台解析就会打回原形。实在需要用到这些特性,需要导出到其他格式将这些特性先渲染出来。
Smark(Github) / Smark(OSChina) (Win / Linux / Mac,开源) :作者为自己写的 pandoc 前端。
- 优点 : 以 pandoc 为后端,也就继承 pandoc 的强大。同时以图形界面避免记忆命令行。基于 pandoc 和 Qt 都是跨平台的,它可以保持多平台体验一致。我对它非常满意,直到发现了Typora。
- 缺点 : 不是实时刷新。问题不大,先专心写一段,想看预览点一下 F5 也不是大问题。另外就是,源码跨平台,但作者只编译打包了 Win32 的包(他自己用)。Win64 需要自己替换64位的 pandoc ,其他平台需要自己配置 Python + PyQt 环境编译。目前只在 Ubuntu 上编译过,其他平台还没试过。这点对非 Windows 的普通用户极其不友好。
mdnice.com(Web,开源(GitHub)):Markdown-Nice,Web 端编辑器。
理论上只要有浏览器能上网就能用(手机的体验可能不好,平板应该还行)。如果想离线使用,因为开源,还能动手在本地部署一个,等同于跨平台。编辑功能对比其他选手并没有突出表现。之所以值得推荐,是因为两个杀手锏:
导出功能针对 微信公众号 和 知乎 做过优化。在这两个平台写字的人不少,但这两个平台的编辑器不支持 Markdown;尤其 公众号 出于安全等考虑,对外链和样式做了各种限制,一般的编辑器的导出,到公众号后台就乱掉了,还得一点点手改回来,完全违背使用 Markdown 的初衷。
mdnice 针对这些痛点做了优化。我一般不用它来写稿,而是在定稿之后用它转格式到 公众号 。
集成了 SitDown HTML 转 Markdown 功能。不过我没怎么使用,不评价。
pandoc (跨平台,开源(GitHub)):pandoc 号称 标记语言的瑞士军刀,可以在多种标记语言和文档格式之间自由切换,Markdown 只是它支持的其中一种语言。
由于是命令行工具,普通用户使用会有不便。上面两个优秀的编辑器都有使用 pandoc 作为后端。一般情况只需要知道它的存在,大概了解原理即可。等到需求非常独特,已有的编辑器都不太能满足,再来学习自行调用 pandoc 不迟。
resume.mdnice.com/(Web,开源(GitHub)):Markdown-Resume,Markdown-Nice 的姐妹项目,简历排版工具。
还没用,有需求的可以试用一下。严格来说这 不算 Markdown 编辑器,因为并非对整篇 Markdown 格式内容全局应用样式,而是往画好的模板格子里填内容,只不过这些内容支持用 Markdown 写,有点鸡肋,违背使用 Markdown 样式分离的初衷。
不过即使这样,它提供的模板也比很多人瞎折腾的简历要强,支持一下,希望看到后续的改进。
MarkdownPad(Win, 需要.NET,高级功能收费):早期 Windows 上的选择。- 优点:简单易用,实时刷新,复制可以选择复制 Markdown 还是 HTML,而且 HTML 会自动带上 CSS 。在不支持 Markdown 的 web 编辑器上面写东西,直接复制 HTML 连 CSS 很省心。
- 缺点:在早期的优点成为标配后,毫无亮点。功能很少,导出选项很少。就这样,很多功能还动不动要收费版才提供。后备,基本不用了。
纯文本编辑
大文件加载快,支持多编码多格式(例如自动识别 Windows 和 Linux 的换行),能写字,也能在写段小脚本懒得开 IDE 时编辑代码,要么小巧要么强大。
目前 Linux 环境用 Vim,Windows 环境主用 Notepad3,直接设为多数格式的默认打开方式;需要用到其他工具的长处时再右键选择打开方式。
更多编辑器比较,可以参考 维基百科:文件编辑器比较
Notepad3(Win, 开源):基于 Notepad2 改进的,仍然轻量级,但是功能更强大的文本编辑器,完全兼容 系统Notepad ,Notepad 的最佳替代品。
Notepad2 (Win, 开源) : 百K单文件的轻量级软件,系统 Notepad (曾经)的最佳替代品。对不起,因为 Notepad3 的出现,多了一个曾经。
项目自 2016 年之后没有再更新,官网证书过期,下载页 404,源码在停留在 sourceforge …… 由于其确实优秀,而且开源、单文件发布,被嵌入 / 加入了很多软件内作为默认编辑器。GitHub 上仍然有很多 fork,其中一支最后发展出了 Notepad3。这印证了我前面说的,优秀的开源软件总会有人接棒。
Notepad++ (Win, 开源) :Windows 下支持各种语法高亮、宏和插件的编辑器多面手。默认就很强大,也可以轻易通过配置和插件变得更适合自己。多行编辑是比较少见的特色。近年开发活跃度下降,加上第一作者(台湾人)发表了一些不当的 ZZ 言论,我下调推荐的优先级。但必须说,由于是华语开发者的作品,在文件编码处理——尤其是东亚语言编码方面,有独到的地方。
SciTE(Scintilla , 跨平台,开源) : SciTE 是 SCIntilla based Text Editor 的缩写,一开始只是作者作为Scintilla 使用范例写的。Scintilla 是用 C++ 写的开源编辑器组件,因为太过优秀,一经出现,就很少有人会重头写编辑器了,都是基于Scintilla 加一个外壳。这里有一个很长的 列表 列出基于 Scintilla 的编辑器,里面就包括了 Notepad++ 和 Notepad2。作为 Scintilla 嫡亲的 SciTE 当然也很优秀,单文件就已经非常强大,也有极强的可配置性,还能通过 Lua 脚本扩展功能。
引用 小众软件 的话: 『较其它同重量级软件,最耀眼的就是导出功能,可以导出 PDF/HTML/RTF/XML/LaTex 类型的文件,直接就能将语法高亮的内容导出』。对于中文用户有个比较致命的缺点,就是中文支持不稳定。放在这里致敬,但并不是十分推荐。
Sublime Text(跨平台) : 个人感觉各方面都很像 Notepad++,不过颜值更高一些。本身是专有软件,但是上面很多扩展包都是开源的,因为社区的活跃而变得强大。严格来说,使用Sublime Text 需要购买授权,只是比较良心提供不限期试用,导致很多人一直不注册。授权方式比较灵活,可以按人数,也可以按机器,官方甚至贴心地推荐按便宜的方式买;个人授权可以用于工作环境,但反过来不行。如果你觉得它好用,最好付费使用,不然就选择开源免费的工具。
UML 建模
starUML
Visual Paradigm Community Edition
其他
按键屏显
- Carnac
白噪音
- Aura
词典
- GoldDict
截屏
- Freeshooter
TODO…
- curl
- Markdown + gitbook (based on node.js) + gitbook.com
- rst + Sphinx (based on Python)+ readthedocs.org
- AsciiDoc + Asciidoctor (based on Ruby)
- hexo + github
本文为本人原创,采用知识共享 “署名-非商业性使用-相同方式共享” 4.0 (CC BY-NC-SA 4.0)”许可协议进行许可。
本作品可自由复制、传播及基于本作品进行演绎创作。如有以上需要,请留言告知,在文章开头明显位置加上署名(Jayce Chant)、原链接及许可协议信息,并明确指出修改(如有),不得用于商业用途。谢谢合作。
详情请点击查看协议具体内容。