shell脚本来抓取选定的文本并改变它?
如何制作一个 shell 脚本来知道插入符在哪里并抓取选定的文本,以便我可以将文本包装在某些内容中?例如,这是来自 Textmate 包的脚本:
<${1:p}>$TM_SELECTED_TEXT</${1/\s.*//}>
它抓取文本并将其包装在打开/关闭 HTML 标记中。而且它是可变的,因此当您键入第一个标签时,第二个标签会被镜像。 我想制作一个像这样的脚本,但在 Textmate 之外,这样我就可以在 TextEXpander 中使用它。
这有道理吗? :)
How can I make a shell script that will know where the caret is and grab selected text, so I can wrap the text in something? For example, this is a script from a Textmate bundle:
<${1:p}>$TM_SELECTED_TEXT</${1/\s.*//}>
It grabs the text and wraps it in open/close HTML tags. And it is variable so the second tag is mirrored as you type the first.
I want to make a script like this but outside of Textmate so I can use it in TextEXpander.
Does this make sense ? :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
$TM_SELECTED_TEXT
不是提供给在 TextMate 外部运行的脚本的环境变量 - 它是由 TextMate 设置并提供给作为其一部分运行的脚本的变量。片段系统。它甚至没有提供给 Shell 捆绑包“运行脚本”命令。您想要做的事情可能可以通过其他 shell 工具(例如,
sed
)来完成,因此功能可以通过 shell 脚本复制 - 这取决于您的使用场景。$TM_SELECTED_TEXT
is not an environment variable provided to scripts running outside of TextMate -- it is a variable that is set by TextMate and provided to scripts that are run as part of its snippet system. It is not even provided to the Shell bundles "Run Script" command.What you want to do may be doable through other shell facilities (e.g.,
sed
) so the functionality can be replicated by a shell script -- it depends on your usage scenario.