- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 Sublime 中定义一个按键绑定(bind),让它自动配对美元符号“$”,就像它自动配对以下符号一样:
我打开了默认的键盘映射文件并添加了以下代码:
// Auto-pair dollar signs
{ "keys": ["\$"], "command": "insert_snippet", "args": {"contents": "\$$0\$"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "[\$a-zA-Z0-9_]$", "match_all": true },
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double", "match_all": true }
]
},
{ "keys": ["\$"], "command": "insert_snippet", "args": {"contents": "\$${0:$SELECTION}\$"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
]
},
{ "keys": ["\$"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^\$", "match_all": true }
]
},
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Left Right.sublime-macro"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\$$", "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^\$", "match_all": true }
]
},
注意转义的美元符号\$。在编辑器中,它们以红色突出显示,当我尝试保存文件时,收到无效转义错误消息。转义美元符号的正确方法是什么?
最佳答案
您将在这里经历两层编程。首先是 Python,然后是 JSON。所以,你的转义美元符号实际上需要转义两次:
"args": {"contents": "\\$$0\\$"}
Sublime Text 读取设置文件后,Python 会去掉第一个转义,留下以下 JSON 表示
"args": {"contents": "\$$0\$"}
然后,一旦 JSON 被解析,你最终会得到
"args": {"contents": "$$0$"}
您不需要在 keys
列表中转义 $
。击键是一个字面上的美元符号,因此不需要转义
第一个设置应如下所示:
{ "keys": ["$"], "command": "insert_snippet", "args": {"contents": "\\$$0\\$"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "[\\$a-zA-Z0-9_]$", "match_all": true },
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double", "match_all": true }
]
},
关于autocomplete - Sublime Text 2 : trying to escape the dollar sign,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34115090/
在使用 Kent Becks Book TDD by Example 时,我遇到了一些我不理解的 Java 代码。 public boolean equals(Object object) {
我在名为 validate 的函数中声明了一个名为 cont 的局部变量。 我正在从验证内部调用函数进程。 我将字符串“cont”作为参数发送给验证函数。 在使用字符串 'cont' 的过程函数中,我
Dollar dollar= (Dollar) object; 这段代码有什么作用?它甚至是Java吗?还是小话?我在 TDD 中找到了它,我认为它是在考虑 Smalltalk 的情况下编写的。 最佳
我的管道在 Jenkinsfile 的 sh """元素处失败。知道哪里出了问题吗? stage('Install dependencies') { when
我正在阅读作者 Kent Beck 所著的名为“示例测试驱动开发”的书。 我正在尝试在 php 中编写类似的函数,但不理解这些步骤。 原始函数: 测试函数: public void testEqual
shell 有一个很棒的特性,当你使用“$@”时,它会在变量扩展中保留参数引用,这样脚本: for f in "$@"; do echo "$f"; done 当带参数调用时: "with space
有什么方法可以在参数扩展上下文中使用 !$ 吗?激发这个问题的理想用法是快速(根据击键)更改文件名(例如,不是将文件名保存在变量中并执行 rsvg-convert $svg > ${svg/.svg/
我有一个严重的问题,一整天我都在寻找答案,但我找不到任何东西...... 我在做什么: 我正在尝试让用户登录我的网站(在 php 中)。 密码和用户保存在我服务器上的 MySQL 数据库中。 对于我使
我一直很困惑。例如,在 php 中我有 sql 语句 $qry = "select * from table where id = $id"; 现在我可以直接在引号内插入“$”还是必须使用 $qry
因此,我们向我们的团队下了一个小赌注,看是否可行。我输了。这是代码: using System; using System.Collections.Generic; using System.Linq
我有一个相当简单的问题。 大多数 美元符号引用中都有一个命名的 HTML 实体,这正是您所期望的; $. 但在其他引用文献中,这个缺失,并告诉您只有数字实体可用 ($)。 我记得,命名实体并不存在很长
我看过一个使用 powershell 设置文件时间戳(创建时间、lastaccesstime、lastwritetime)的示例: PS>$(get-item test.txt).lastwritet
我正在使用 kable 格式化表格用于布局和 scales::dollar向记录中添加美元符号。但是,有些记录是 NA我宁愿有一个 -在输出上比 $NA . 例如我会 scales::dollar(1
我正在开发一个已经发布的 perl 代码的新版本,并发现了这一行: $|++; 据我所知,$|与管道有关,如所解释的 in this link ,我明白这一点,但我无法弄清楚++ (加号)在这里意味着
为什么这行代码 当我的所有区域设置都设置为英国时,将结果输出为 $xx.xx。我希望它输出为 £xx.xx。有任何想法吗?我尝试了字符串格式的不同变体,包括 StringFormat={}{0:C}
在输出中,new_dollars总是显示美元数量,所以我不知道如何解决这个问题。请帮我找出问题所在。 int main(void) { int dollars, cents, count, n
我用 C 编写了一段基本代码来判断密码是否安全。它根据密码是否安全返回 0 或 1。当我在 ubuntu 中传递命令行参数时,它工作正常,除非密码包含 $ 符号。因此我编写了一个程序来输出所有参数,它
在 bash 中,() 和 $() 都创建了一个子 shell。 它们之间有什么区别?它们的典型用法是什么? 最佳答案 () 只是创建一个复合命令,运行括号内的命令。 $() 做同样的事情,但也替换了
bang dollar 好像是指最后一行命令行的最后一部分。 例如 $ ls -l .... something $ !$ -l bash: -l command not found 我可以找到很多
我有以下代码。 string pattern5 = "^ba$"; string myString5 = "badabyba"; bool match5 = Regex.IsMatch(myStrin
我是一名优秀的程序员,十分优秀!