請參閱以下代碼段:
"srcPath":{
"prefix": "getSrcPath",
"body": [
"$TM_FILEPATH",
"${1:${TM_FILEPATH/(.*)src.(.*)/${2}/i}}",
"${TM_FILEPATH/[\\\\]/./g}"
]
},
第 1-3 行的輸出是:
D:\root\src\view\test.lua
view\test.lua
D:.root.src.view.test.lua
我怎樣才能得到像'view/test.lua'這樣的輸出?
uj5u.com熱心網友回復:
試試這個片段:
"srcPath":{
"prefix": "getSrcPath",
"body": [
"$TM_FILEPATH",
"${TM_FILEPATH/.*src.|(\\\\)/${1: /}/g}",
"${TM_FILEPATH/[\\\\]/\\//g}"
]
}

.*src.|(\\\\)將匹配包括...src\路徑資訊在內的所有內容。我們不會將它保存在捕獲組中,因為我們沒有在轉換的替換部分中使用它。
(\\\\)匹配\路徑其余部分中的任何內容 - 需要標志g來獲取所有內容。
替換:${1: /}這意味著如果有一個捕獲組 1.*src.|(\\\\)則將其替換為/. 請注意,我們不匹配路徑的其余部分,src\僅在\可能跟隨它的 's 之后。因此,不匹配那些其他路徑部分只會讓它們保留在結果中。
你很接近這個:
"${TM_FILEPATH/[\\\\]/\\//g}"只需將任何替換\\\\為\\/.
uj5u.com熱心網友回復:
使用擴展檔案模板,您可以插入包含變數和多個查找替換操作的“片段”。
使用鍵系結:
{
"key": "ctrl alt f", // or any other combo
"command": "templates.pasteTemplate",
"args": {
"text": [
"${relativeFile#find=.*?src/(.*)#replace=$1#find=[\\\\/]#flags=g#replace=.#}"
]
}
}
目前只能通過鍵系結或通過multi command(或類似方式)實作。將添加一個問題以使其通過前綴成為可能。
還缺少一些標準變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478431.html
