JediTerm
该项目的主要目的是提供一个纯Java的终端小部件,可以轻松嵌入到IDE中。它支持SSH连接和Mac OSX、Linux以及Windows上的本地PTY终端会话。
该库被JetBrains的IDE如PyCharm、IDEA、PhpStorm、WebStorm、AppCode、CLion和Rider所使用。
从2.5版本开始,提供了JediTerm终端的独立版本,以Mac OSX发行版的形式提供。
JediTerm这个名字源自J(来自Java
) + edi(反转的IDE
) + Term(显然来自terminal
)。此外,Jedi这个词本身在众多不同终端实现的宇宙中给人一些信心和希望。
运行
要从源代码运行独立的JediTerm终端,只需执行_jediterm.sh_或_jediterm.bat_。 或者使用Releases页面的二进制发行版。
构建
本项目使用Gradle构建。项目由4个子项目组成:
-
terminal
提供VT100兼容的终端仿真器和基于Java Swing的终端面板UI实现的核心库。
-
pty
jediterm-pty.jar库,通过使用Pty4J库,为本地PTY终端会话启用终端。
-
JediTerm
JediTerm终端的独立版本,以.dmg格式发布用于Mac OSX。
特性
- 使用Pty4J的Unix、Mac和Windows本地终端
- Xterm仿真 - 通过大多数vttest测试
- Xterm 256色
- 滚动
- 复制/粘贴
- 鼠标支持
- 客户端或服务器端终端大小调整
- 终端标签页
作者
Dmitry Trofimov dmitry.trofimov@jetbrains.com, Clément Poulain
链接
- 终端协议描述: http://invisible-island.net/xterm/ctlseqs/ctlseqs.html
- 终端字符集术语和机制: http://www.columbia.edu/kermit/k95manual/iso2022.html
- VT420程序员参考手册: http://manx.classiccmp.org/collections/mds-199909/cd3/term/vt420rm2.pdf
- Pty4J库: https://github.com/traff/pty4j
- JSch库: http://www.jcraft.com/jsch
- UTF8演示: http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
- 控制序列可视化: http://www.gnu.org/software/teseq/
- 终端协议测试: http://invisible-island.net/vttest/
开源起源和历史
JediTerm的初始版本是对Gritty终端仿真器的重新开发,而Gritty本身又是对JCTerm终端实现的重新开发。现在源代码中已经没有Gritty和JCTerm的任何内容了。所有内容都从头重写。添加了许多新功能。
字符集指定和映射实现基于J.W. Janssen的jVT220 (https://github.com/jawi/jVT220, Apache 2.0许可)中的相应类。
独立发行版在很大程度上依赖于从JetBrains的IntelliJ社区平台仓库(https://github.com/JetBrains/intellij-community)中获取的定制Swing UI小部件。
许可证
JediTerm采用双重许可,既有LGPLv3许可(在根目录的LICENSE-LGPLv3.txt文件中)也有Apache 2.0许可(在根目录的LICENSE-APACHE-2.0.txt文件中)。 您可以选择使用上述许可中的一种。