文档路径。土坯括号
Path to document. Adobe Brackets
有什么办法可以得到Brackets中前面文档的路径吗?
我尝试过的:
对于 AppleScript,这适用于大多数代码编辑器,但不适用于 Brackets:
tell window 1 to set thePath to value of attribute "AXDocument"
另一方面,我注意到在括号(菜单栏)> Window 菜单中有类似的内容:
/path/to/document.html (some-text) — Brackets
我只想获取路径,没有:(some-text) — Brackets
(请注意,(some-text) 我的意思是它是在每台计算机上不同的文本。常见的情况是在 () 内。
运行 以下:
tell application "System Events" to ¬
get has scripting terminology of application process "Brackets"
Returns:
false
因此,使用 AppleScript 编写脚本 Brackets 将受到限制;然而,下面的 example AppleScript code 为我工作 return 想要的部分文档名称在Window菜单中括号的显示内容:
tell application "System Events" to set menuItemName to ¬
(name of menu item 7 of menu 1 of menu bar item ¬
"Window" of menu bar 1 of application process "Brackets")
set docPathName to do shell script ¬
"grep -o '^.*\.[[:alnum:]]*[^ ]'<<<" & ¬
quoted form of menuItemName
return docPathName
注意grep
命令,如果在Terminal中使用,则[=80=用于它的 ]regex 在 .
之前只有一个 反斜杠 以将其转义以将其视为文字 .
;但是,当使用 do shell script
命令 时,需要额外的 反斜杠 才能正确转义它。
在 Brackets 中,在 Working Files 下打开并选择一个文档,name在所选文档的 Window 菜单上显示的始终是 menu item 7
并且格式为:
/path/to/filename.ext (some text) — Brackets
Using grep -o
to return 仅 docPathName
variable 中匹配的部分 ^.*\.[[:alnum:]]*[^ ]
正则表达式,它将return所有内容,但不包括" (some text) — Brackets"
。
换句话说,它只是 return 的 "/path/to/filename.ext"
部分。
了解do shell script
命令:
grep
- 来自其手册页:文件模式搜索器
-o
- 仅打印行的匹配部分。
^.*\.[[:alnum:]]*[^ ]
- 请参阅下面的了解正则表达式。
<<<
- 来自bash
手册页:Here Strings
here文档的变体,格式为:<< <word
word 被扩展并提供给命令的标准输入。
了解正则表达式:
^.*\.[[:alnum:]]*[^ ]
^
- 声明字符串开头的位置。
.
- 匹配任何字符(行终止符除外)。
*
- 量词——在零次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)。
\.
- 按字面匹配字符 .
(区分大小写)。
[[:alnum:]]
- 匹配列表中存在的单个字符,匹配字母数字字符 [a-zA-Z0-9]。
*
- 量词——在零次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)。
[^ ]
- 匹配列表中不存在的单个字符,按字面匹配字符
(区分大小写)。
注意:示例 AppleScript code 就是这样,不包含任何可能适当的 error 处理。用户有责任根据需要添加任何 错误处理 。看看 try statement and error statement in the AppleScript Language Guide. See also, Working with Errors.
有什么办法可以得到Brackets中前面文档的路径吗?
我尝试过的:
对于 AppleScript,这适用于大多数代码编辑器,但不适用于 Brackets:
tell window 1 to set thePath to value of attribute "AXDocument"
另一方面,我注意到在括号(菜单栏)> Window 菜单中有类似的内容:
/path/to/document.html (some-text) — Brackets
我只想获取路径,没有:(some-text) — Brackets
(请注意,(some-text) 我的意思是它是在每台计算机上不同的文本。常见的情况是在 () 内。
运行 以下:
tell application "System Events" to ¬
get has scripting terminology of application process "Brackets"
Returns:
false
因此,使用 AppleScript 编写脚本 Brackets 将受到限制;然而,下面的 example AppleScript code 为我工作 return 想要的部分文档名称在Window菜单中括号的显示内容:
tell application "System Events" to set menuItemName to ¬
(name of menu item 7 of menu 1 of menu bar item ¬
"Window" of menu bar 1 of application process "Brackets")
set docPathName to do shell script ¬
"grep -o '^.*\.[[:alnum:]]*[^ ]'<<<" & ¬
quoted form of menuItemName
return docPathName
注意grep
命令,如果在Terminal中使用,则[=80=用于它的 ]regex 在 .
之前只有一个 反斜杠 以将其转义以将其视为文字 .
;但是,当使用 do shell script
命令 时,需要额外的 反斜杠 才能正确转义它。
在 Brackets 中,在 Working Files 下打开并选择一个文档,name在所选文档的 Window 菜单上显示的始终是 menu item 7
并且格式为:
/path/to/filename.ext (some text) — Brackets
Using grep -o
to return 仅 docPathName
variable 中匹配的部分 ^.*\.[[:alnum:]]*[^ ]
正则表达式,它将return所有内容,但不包括" (some text) — Brackets"
。
换句话说,它只是 return 的 "/path/to/filename.ext"
部分。
了解do shell script
命令:
grep
- 来自其手册页:文件模式搜索器-o
- 仅打印行的匹配部分。^.*\.[[:alnum:]]*[^ ]
- 请参阅下面的了解正则表达式。
<<<
- 来自bash
手册页:Here Strings
here文档的变体,格式为:<< <word
word 被扩展并提供给命令的标准输入。
了解正则表达式:
^.*\.[[:alnum:]]*[^ ]
^
- 声明字符串开头的位置。.
- 匹配任何字符(行终止符除外)。*
- 量词——在零次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)。\.
- 按字面匹配字符.
(区分大小写)。[[:alnum:]]
- 匹配列表中存在的单个字符,匹配字母数字字符 [a-zA-Z0-9]。*
- 量词——在零次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)。[^ ]
- 匹配列表中不存在的单个字符,按字面匹配字符(区分大小写)。
注意:示例 AppleScript code 就是这样,不包含任何可能适当的 error 处理。用户有责任根据需要添加任何 错误处理 。看看 try statement and error statement in the AppleScript Language Guide. See also, Working with Errors.