2009-11-04 38 views
0

如何製作一個能夠知道插入符號位置的外殼腳本並獲取選定的文本,以便我可以將文本包裝在某些內容中?例如,這是來自Textmate包的腳本:Shell腳本抓取選定的文本並修改它?

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

它抓取文本並將其封裝在打開/關閉HTML標記中。而且它是可變的,所以第二個標籤在您鍵入第一個標籤時被鏡像。 我想製作一個這樣的腳本,但在Textmate之外,所以我可以在TextEXpander中使用它。
這有道理嗎? :)

+0

我想你需要澄清你想要什麼 - 我不明白,而且從缺乏反應,其他人也沒有。 TM_SELECTED_TEXT是一個環境變量嗎? $ {1:p}(如果給出,我解釋爲'參數1',但'如果沒有給出段落',則'p')來自哪裏。 '$ {1/\ s。* //}'序列意味着什麼?這可能有些奇怪,比如「拿第一個參數並修剪零個或多個空格序列」,但爲什麼不在開始標籤中呢? –

+0

好的,我很抱歉。 工作原理是,該代碼片段將選定的文本與打開/關閉HTML標記包圍在一起

'p'突出顯示,可以在插入時重寫,並且結束'p'標記被鏡像。所以,如果我突出這個並激活,我最終

這個

,並可以改寫firts'p'得到
THIS
什麼的。那就是$ {1:p}它說要首先突出顯示p,並將它鏡像到最後一個。合理?我認爲變量是環境,我不知道。 – thatryan

回答

1

$TM_SELECTED_TEXT不提供運行TextMate的外部腳本的環境變量 - 它是由 TextMate的設置並提供給正在運行作爲其片段系統的一部分腳本變量。甚至沒有向Shell提供捆綁「運行腳本」命令。

您想要做的事情可能通過其他shell工具(如sed)來實現,因此可以通過shell腳本複製功能 - 這取決於您的使用場景。