• send line/selection to terminal


    需求

    在编辑 shell script 或者 markdown 的时候非常想要这样一个功能:

    1. 在一个文件中,可以通过按下快捷键(比如 command+enter)来执行当前行/选中的内容。
    2. 执行时的工作目录是这个脚本所在的目录,或者项目目录,也可以设置。
    3. 执行的结果会显示在编辑器的另一个窗口中。
    4. 每条指令的最后一次执行结果会被保存下来,如果把鼠标放在该条指令上就可以看到。

    这个灵感来源于 database IDE DataGrip,如图所示,并且支持多个连接、自动选择语句范围、写入到文件等功能。

    在这里插入图片描述

    可能的解决方案

    这是一些我的探索过程以及非完美的解决方案,如果有更好的解决方案可以评论交流。

    sublime 的 sublimeREPL 插件

    需要预先启动一个 repl session,只能写入在 repl 中而且暂时不支持我的 zsh 的 ansi 格式。

    jetbrain 系列的 runmarkdown 功能

    可以直接在 markdown 中执行一行命令,非常贴近我的需求,但是没有找到文档和设置的地方。

    支持整体执行,以及某些语句的单独执行。可以执行到 jetbrain 自己的 terminal 中。

    在这里插入图片描述

    sublime 的 sendcode 插件

    按下快捷键就可以在一个系统 terminal 里面执行任务,可以执行 shell 或者在 markdown 中执行 shell script,将 line/selection 发到终端中。
    基本满足我的需求,如果是集成 shell 就好了,还有一个缺点是工作目录需要重新设置。

    如果能和 terminus 结合起来那么将绝杀。

    update: https://github.com/randy3k/SendCode

    又研究了一下,可以结合起来!甚至两个插件是同一个作者做的。这是我的配置:

    [
        { "keys": ["alt+`"], "command": "toggle_terminus_panel" },
        { "keys": ["super+t"], "command": "new_file" },
        {
            "settings": {
                "SendCode": {
                    "prog": "terminus",
                    "auto_advance" : false,
                    "r" : {
                        "bracketed_paste_mode": true
                    }
                }
            }
        }
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    唯一的问题是,如果之前没有 terminus session,似乎 sendcode 并不能新建一个。

    jetbrains 的 send to terminal 插件

    和 sendcode 类似。
    有人在 issue 中问为什么不使用 jetbrain 集成的 terminal,回答是没有开放对应的 api。

    jetbrain 的官方支持

    还在 track,遥遥无期。
    https://youtrack.jetbrains.com/issue/IDEA-131964/Execute-Selection-in-Embedded-Terminal

  • 相关阅读:
    TCP 如何保证有效传输及拥塞控制
    阿里影业+大麦,开启大文娱新纪元?
    uni-app:实现时钟自走(动态时钟效果)
    k8s核心概念pod 基本定义和命令
    Windows令牌窃取提权和烂土豆提权学习
    const成员函数 以及 取地址及const取地址操作符重载
    【专栏】基础篇05| Redis 该怎么保证数据不丢失(下)
    你还不懂java的日志系统吗
    Linux系统---nginx(4)负载均衡
    常用前端js开发工具函数
  • 原文地址:https://blog.csdn.net/m0_37809890/article/details/126487956