[Java Shell 指南] JShell 外部编辑器

yufei       5 年, 7 月 前       875

JShell 虽然提供强大的内部编辑和历史检索功能,一如所有的 Shell,内部编辑特别适用单行,但对多行就有点无能为力。

为此,JShell 允许使用外部编辑器,适用于对多行代码段进行编辑,这是在命令行提示符下的另一种编辑方法。

JShell 外部编辑默认会使用 JShell 自带的编辑器,但同时也提供配置功能,允许我们自由选择合适的外部编辑器。

要打开外部编辑器,并在编辑器中一次编辑所有现有代码段,使用的没有任何选项的命令 /edit。如果要在编辑器中编辑特定代码段,则需要使用带有代码段名称或 ID 的 /edit 命令。至于 ID 的获取,可以使用 /list 命令

例如,我们要编辑 class C 类,可以直接输入 /edit C 命令

jshell> /edit volume

这样就会打开默认的自带的编辑器

如果你输入的名称或 ID 不存在,则会提示 片段不存在

jshell> /edit volume
|  没有此类片段: volume

我们还可以使用外部编辑器添加新的代码段。

当我们在外部编辑器中点击保存时,任何已更改的片段或新片段都会输入到 JShell 会话并立即执行。且立即显示代码片段运行的结果。

需要注意的是,执行外部编辑器中的代码,并不会出现任何提示,而且在编辑器关闭之前,无法在 JShell 窗口中输入命令或片段,因为它是独占的。

设置外部编辑器

现在我们来说说如何配置外部编辑器,如果我们没有指定编辑器,那么 JShell 会按顺序检查以下环境变量: JSHELLEDITORVISUALEDITOR。如果没有设置,则使用简单的默认编辑器。

为了自定义外部编辑器,需要使用 /set editor 命令。而传递给该命令的参数,则是想要使用的外部编辑器。

例如,如果要设置外部编辑器为 vim ,则可以使用下面的命令

jshell> /set editor vim
|  编辑器设置为: vim

设置好了之后,我们就可以使用 /edit 命令打开现有的代码段并进行编辑

jshell> /edit

在外部编辑器窗口中定义一个类 C 并保存更改会在 JShell 窗口中生成以下输出:

jshell> /edit 
|  已替换 类 C
|  已替换 类 C

如果设置的外部编辑器不存在,则会报错

jshell> /set editor kwrite
|  编辑器设置为: kwrite

jshell> /edit
|  Edit Error: process IO failure: Cannot run program "kwrite": error=2, No such file or directory

jshell> 

而退出外部编辑器的方法,就是直接关闭外部编辑器,关闭了之后,JShell 就会恢复可输入状态

目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.