专栏首页ICSOC.TECH增强tclsh的行编辑功能

增强tclsh的行编辑功能

IC 设计这行的很多 EDA 工具都内嵌了tcl 解释器,所以日常工作免不了和 tcl 语言打打交道。如果想写两句 tcl 代码做个测试,当然可以新建一个脚本文件,不过比较懒的做法就是打开 tclsh 直接输入想要测试的代码。

然而 tclsh 的自带的行编辑功能实在太差了:

光标不能随意移动。。。 历史命令无法追溯。。。 自动命令补全。。。(画外音:想啥呢?) 。。。

DOS 时代的 Turbo C 开始接触 IT 的同学可能对全屏幕编辑感到理所当然,如果回到更久远的无屏幕时代,用电传打字机(TTY)聊会儿天可能会感到生不如死。

于是人们发明了比电传打字机更人性化的行编辑器,顾名思义,在一行内可以随意编辑,然后点击回车发送。例如现在还预装在 Linux 发行版内的行编辑器 ed。当然这比全屏幕编辑器,例如 vi 的体验还是差上好多。

tclsh 的这种“简陋”实际上是秉承了类Unix 工具的历史特性:一个工具做并且只做它应该完成的事情。

幸好 Linux 提供了 readline library , 可以给任意 command 提供行编辑功能。更有开发者以此为基础提供了好用的实用工具 rlwrap, 也就是 read line wrapper。具体的用法大家可以点击阅读原文查看使用说明。

简要的用法大概是这样的。

安装 rlwrap

下载安装包后,经典的三部曲就可以。

./configure
make 
make install

root 权限的可以考虑安装在自己的 home 的某个目录(如app)下,只需要把第一步替换为:

./configure --prefix=$HOME/app

更改 tclsh 的启动方式

rlwrap 来启动 tclsh 的基本命令如下。

rlwrap -c tclsh

这样启动的 tclsh 就具有基本的行编辑功能了。

rlwrapfilters 功能

rlwrap 还支持多词关键字补全。需要先准备一个filter文件(如 ./tclsh_filter),里面用特定的格式列出 tclsh 的关键字。然后用下面的方式启动。

rlwrap -z ./tclsh_filter tclsh

这样启动的 tclsh 就具备比较高级的关键字自动补全功能了。

本文分享自微信公众号 - icsoc(ic-soc),作者:韩京飞

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 双屏工作的小工具

    最近公司逐步给大家的电脑升级成了双显示器,一只眼睛看代码、一只眼睛看波形,效率果然提高不少

    icsoc
  • 当我们做后仿时我们究竟在仿些什么(三)

    最近又做了一些后仿debug的工作,有两点是之前两篇没有提到太多的,趁假期有点时间记录下来。标题也照旧,加个三吧。

    icsoc
  • 读书笔记 | Design Rot - 2

    设计边界这个概念,应该是被广泛认知和接受的,毕竟大家都是从module designer开始的。一个设计模块是有边界的,简单来说,一个模块的输入和输出应该都是预...

    icsoc
  • QMainWindow 和 QWidget 设置layout

    给QWidget或者QDialog设置布局的时候方式很简单。创建好一个布局:mainLayout,然后不停地把各个控件往ma...

    _gongluck
  • 打造属于自己的安卓menu

    看下面的menu菜单,是原装的菜单,好丑陋哦,类似于小编这么爱美的人来说,纯粹就是天大的打击,接受不起。于是,小编就发奋图强,努力,努力,再努力,终于,将菜单改...

    lzugis
  • 干货 | Oracle数据库操作命令大全,满满的案例供你理解,收藏!

    Oracle是美国ORACLE公司研发的一款关系型数据库,主要特点有:速度快、安全性强、可跨平台,主要版本有:Oracle9i、Oracle10g、Oracle...

    网络技术联盟站
  • 史上最全的 DB2 错误代码大全

    作为一个程序员,数据库是我们必须掌握的知识,经常操作数据库不可避免,but,在写 SQL 语句的时候,难免遇到各种问题。例如,当我们看着数据库报出的一大堆错误时...

    CG国斌
  • 干货 | Oracle数据库操作命令大全,满满的案例供你理解,收藏!

    Oracle是美国ORACLE公司研发的一款关系型数据库,主要特点有:速度快、安全性强、可跨平台,主要版本有:Oracle9i、Oracle10g、Oracle...

    网络技术联盟站
  • 施一公:这种愚蠢的状况不变,中国高校和科研人员都将是免费为西方打工!

    现年51岁的施一公于36岁被聘为普林斯顿大学分子生物学系历史上最年轻的正教授;40岁拿到终身讲席教授;46岁先后当选美国人文与科学学院外籍院士、美国国家科学院院...

    钱塘数据
  • Android Jetpack系列——细说DataBinding

    DataBinding 是谷歌最早在2015年官方发布的一个框架,顾名思义即为数据绑定。而推出 DataBinding 的目的就是为了减少繁琐的代码,使代码更加...

    Demo_Yang

扫码关注云+社区

领取腾讯云代金券