我想知道是否有办法弄清楚一个键是否在vim中做了什么.我知道我可以:map用来查看用户定义的映射,但内置的东西有什么用吗?
例如,我总是CTRL- W必须关闭标签,因为我认为它没有被使用.半年后,我发现有一些使用它,就像序列CTRL- W CTRL- S分割窗口,它是重新训练自己的噩梦.
我正在创建一个声明式Jenkins管道,如下所示:
pipeline {
agent {
label 'mylabel'
}
stages {
stage('Install dependencies') {
milestone()
steps {
sh "yarn install"
}
}
stage('Lint files') {
steps {
sh "eslint src"
}
}
stage('Create bundle') {
steps {
sh "yarn run build:server"
sh "yarn run build:client"
}
}
stage('Publish') {
steps {
timeout(time: 15, unit: 'SECONDS') {
input(message: 'Deploy this build to QA?')
}
// deployment steps
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果超时步骤失败(因为我们不想部署此构建,或者没有人按下按钮等等),它的工作效果很好,构建标记状态为"已中止".不幸的是,这意味着例如Github将我们的拉取请求标记为"检查失败".
有没有办法用超时()步骤之前的状态声明构建?例如.如果构建在超时步骤之前成功,则应将其标记为成功,即使超时发生也是如此.
我无法弄清楚为什么原型会在dom:loaded事件和AJAX处理程序中抑制错误消息.
鉴于以下HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Conforming XHTML 1.1 Template</title>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
document.observe('dom:loaded', function() {
console.log('domready');
console.log(idontexist);
});
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
domready事件触发,我在控制台中看到日志,但没有任何错误的迹象.如果你将console.log(idontexist);线移出处理程序,你就得到了
idontexist没有定义
控制台中出错.我觉得有点怪异,在其他事件处理程序,如"点击",你会得到错误信息,似乎这仅仅是dom:loaded有这个问题.
AJAX处理程序也是如此:
new Ajax.Request('/', {
method: 'get',
onComplete: function(r) {
console.log('xhr complete');
alert(youwontseeme);
}
});
Run Code Online (Sandbox Code Playgroud)
你不会看到任何错误.这是使用prototype.js 1.6.1,我在文档中找不到这种行为的任何迹象,也没有在这些处理程序中启用错误报告的方法.
我尝试使用FireBug的调试器逐步执行代码,当它遇到dom:loaded处理程序中缺少的变量时,它似乎跳转到名为K的第53行上的函数:
K: function(x) { return x }
Run Code Online (Sandbox Code Playgroud)
但是怎么样?为什么?什么时候?我在那里看不到任何try/catch块,程序流如何在那里结束?
我知道我可以通过dom:ready在try/catch块中包装我的处理程序来使错误可见,但这不是一个非常舒服的选择.同样适用于为AJAX调用注册全局onException处理程序.
为什么它甚至可以抑制错误?有人遇到过这个吗?
我正在使用Behat进行测试,使用ZombieJS驱动程序,到目前为止一切都运行良好,但有一件事困扰我,我似乎无法弄清楚如何让Behat模拟非点击链接元素.我想这来自Mink是一个"跨浏览器"的驱动程序,单击非链接元素并没有多大意义.对于我的用例,我需要它,因为页面上有几个元素附加了javascript事件监听器,我想测试这些功能.
我试过用
Then I follow "div.sa"
Run Code Online (Sandbox Code Playgroud)
但它失败了预期的错误:
01. Link with id|title|alt|text "div.sa" not found.
Run Code Online (Sandbox Code Playgroud)
因为它不是链接元素.Behat中有类似的步骤:
我按"button.class"
但这只适用于按钮.
有没有办法让Behat点击不是标签的元素?
我有2个使用相同规则的子域,如下所示:
<Directory /srv/project/sites/project.hu/htdocs/>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?route=$1 [L,QSA]
SetEnv config default,local
Order allow,deny
allow from 192.168.0.0/16
</Directory>
<Directory /srv/project/sites/admin.project.hu/htdocs/>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?route=$1 [L,QSA]
SetEnv config default,local
Order allow,deny
allow from 192.168.0.0/16
</Directory>
Run Code Online (Sandbox Code Playgroud)
如您所见,两个容器中的规则相同.如何在单个容器中指定这些规则?起初我想过用这个:
<DirectoryMatch ^/srv/project/sites/(?:(?:admin\.project\.hu)|project\.hu)/htdocs/$>
...
</DirectoryMatch>
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法以更清洁的方式做到这一点,我错过了?
编辑:我不喜欢DirectoryMatch方式,因为当我有更多目录时,正则表达式将变得不可维护.
apache ×1
behat ×1
javascript ×1
jenkins ×1
key-bindings ×1
mink ×1
mod-rewrite ×1
prototypejs ×1
vim ×1
zombie.js ×1