文章摘要
该项目是对经典文本界面框架Turbo Vision 2.0的现代化移植,实现了跨平台支持和Unicode功能。开发者最初目标是保持对原版代码的最小改动,同时兼容Linux和DOS/Windows系统,并确保与旧应用程序的源代码兼容性。在2020年中期,开发者进一步实现了完整的Unicode支持,最终决定将其开源。
文章总结
以下是文章主要内容的重新陈述,保留了核心细节并删减了无关内容:
Turbo Vision 2.0 现代移植版
项目概述
Turbo Vision 是经典的基于文本用户界面(TUI)框架,最初由 Borland 在 20 世纪 90 年代开发。此项目是对 Turbo Vision 2.0 的现代化移植,支持跨平台(包括 Linux 和 Windows)和 Unicode,并保留了原始框架的核心功能。
项目目标
1. 跨平台支持:
- 使 Turbo Vision 在 Linux 上运行,同时最小化对原始代码的修改。
- 保留在 DOS/Windows 上的兼容性。
- 确保与旧版 Turbo Vision 应用程序的源代码兼容。
- 现代化改进:
- 支持 Unicode(UTF-8 编码)。
- 支持 24 位真彩色和扩展终端功能(如鼠标滚轮、剪贴板交互)。
- 改进用户体验(如窗口拖动、菜单操作、滚动条行为等)。
功能亮点
1. Unicode 支持:
- 支持 UTF-8 输入和显示,包括双宽度字符和组合字符。
- 提供新的 API 函数(如 TStringView、TSpan)以简化文本处理。
终端兼容性:
- 自动适配不同终端的颜色和功能(如 256 色、24 位 RGB 色)。
- 支持 X11、Wayland 和 Windows 控制台的剪贴板交互。
API 扩展:
- 新增
TClipboard类,支持系统剪贴板操作。 - 新增定时器功能(
setTimer/killTimer)和线程安全的事件唤醒机制(wakeUp)。 - 支持扩展颜色属性(如粗体、斜体、下划线)。
- 新增
构建与使用
1. 构建环境:
- Linux:依赖 CMake、GCC/Clang、libncursesw 和 libgpm(可选鼠标支持)。
- Windows:支持 MSVC 和 MinGW,需配置 C++14 标准。
- Borland C++:保留对 DOS/Windows 的原始支持,但不支持 Unicode。
- 快速开始:
- 示例程序(如
hello、tvdemo、tvedit)演示了基本功能。 - 推荐阅读 Turbo Vision 用户指南 和 编程指南。
- 示例程序(如
应用案例
- Turbo:基于 Turbo Vision 的文本编辑器。
- tvterm:终端模拟器原型。
- TMBASIC:用于开发控制台应用的编程语言。
贡献与反馈
欢迎提交问题或拉取请求,尤其是对现有 Turbo Vision 应用程序的兼容性改进建议。
关键细节保留说明
- 核心功能:突出跨平台、Unicode 和颜色支持等现代化改进。
- 技术实现:简要说明构建环境和 API 扩展,避免深入编译细节。
- 示例与文档:保留快速入门和资源链接,方便用户实践。
- 删减内容:省略了冗长的构建配置步骤、历史背景和次要功能描述(如 Borland C++ 的具体构建问题)。
此陈述旨在为中文读者提供清晰的项目概览,同时保留技术深度和实用性。
评论总结
以下是评论内容的总结:
对Turbo Vision的怀旧与赞美
- 多位用户回忆Turbo Vision带来的编程启蒙和美好体验,称赞其编译器和文档的优秀。
- 引用:
- "Compiler performance was superb and the manuals were a work of art" (jgord)
- "I picked it up and immediately fell in love with the bluish TUIs" (warpech)
Turbo Vision的现代适用性
- 用户指出Turbo Vision至今仍可使用,甚至能编译90年代的代码,但缺乏现代文档和自动布局功能。
- 引用:
- "you can even compile/run code from 1993 without major issues" (lepicz)
- "manual 'layouting' is kinda annoying, some auto layout like qt would be handy" (lepicz)
对Pascal版本的怀念
- 部分用户更怀念原始的Pascal版本,认为C++版本像是“移植的移植”。
- 引用:
- "the C++ one is more like a port of the Pascal one" (rezaprima)
- "Borland did the same with other frameworks... many of C++ Builder tools are actually written in Delphi" (pjmlp)
现代工具与开发流程的批评
- 用户批评现代开发工具的复杂性,怀念Turbo系列一键编译的简洁性。
- 引用:
- "Turbo C or Pascal, hit F9 and you're up and running" (childintime)
- "they are not tools, but rituals we insist on" (childintime)
Turbo Vision的衍生项目与未来
- 用户提到多个Turbo Vision的现代移植版本(如C++、Rust),并讨论其法律风险。
- 引用:
- "There's also this one in C++... There's even one in Rust" (Narishma)
- "I wonder if Embarcadero... can find a reason to complain" (nottorp)
技术细节与改进尝试
- 用户分享在macOS上封装Turbo Vision的经验,并对比其他TUI库的不足。
- 引用:
- "I've been writing a wrapper for this repo... under .Net on macOS" (vintagedave)
- "libraries like Terminal.GUI... really difficult to get behaving without bugs" (vintagedave)
其他相关推荐
- 用户推荐与Turbo Vision相关的资源,如播客和讨论。
- 引用:
- "See also Final Cut" (michaelsbradley)
- "I recommend the recent Wookash podcast with Chuck Jazdzewski" (NSUserDefaults)
总结:评论普遍表达了对Turbo Vision的怀旧之情,认可其历史价值,同时讨论了其现代适用性、技术局限性和衍生项目。部分用户对现代开发工具的复杂性提出批评,并分享改进尝试。