【问题标题】:Shell script to grab selected text and alter it?用于抓取选定文本并更改它的 Shell 脚本?
【发布时间】:2009-11-04 16:48:47
【问题描述】:

我怎样才能制作一个 shell 脚本来知道插入符号的位置并抓取选定的文本,以便我可以将文本包装在一些东西中?例如,这是来自 Textmate 包的脚本:

<${1:p}>$TM_SELECTED_TEXT</${1/\s.*//}>

它抓取文本并将其包装在打开/关闭 HTML 标记中。它是可变的,因此第二个标签在您键入第一个标签时会被镜像。 我想在 Textmate 之外制作这样的脚本,以便可以在 TextEXpander 中使用它。
这有意义吗? :)

【问题讨论】:

  • 我认为你需要澄清你想要什么 - 我不明白,由于缺乏回应,其他人也没有。 TM_SELECTED_TEXT 是环境变量吗? ${1:p} (我将其解释为“如果给出参数 1,但如果没有给出则表示段落的“p”)来自哪里。 '${1/\s.*//}' 序列是什么意思?这可能有点奇怪,比如“取参数 1 并从中删除零个或多个空格的序列”,但为什么不在开始标签中呢?
  • 啊,好吧,我很抱歉。它的工作原理是,sn-p 获取选定的文本,并用打开/关闭 HTML 标签包围它被镜像。因此,如果我突出显示 THIS 并激活,我最终会得到

    THIS

    并且可以改写第一个 'p' 以获得
    THIS
    或其他内容。那就是 ${1:p} 它说首先突出显示 p,然后将其镜像到最后一个。说得通?而且我认为变量是环境,我不知道。

标签: shell textmate


【解决方案1】:

$TM_SELECTED_TEXT 不是提供给在 TextMate 之外运行的脚本的环境变量——它是一个由 TextMate 设置并提供给作为其 sn-p 一部分运行的脚本的变量系统。它甚至没有提供给 Shell 捆绑“运行脚本”命令。

您想要做的事情可以通过其他 shell 工具(例如,sed)来实现,因此可以通过 shell 脚本复制该功能 -- 这取决于您的使用场景。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多