小编kYu*_*uZz的帖子

让"完整"和"菜单完成"一起工作

我发现Bash shell支持一种与"传统"自动完成不同的自动完成,其中所有可能性都列在下一行.

使用"传统"自动完成功能,如果我键入ch然后Tab按键,我会得到类似的结果:

$ ch
chacl  chgrp  chmod  chown  chvt
Run Code Online (Sandbox Code Playgroud)

但是如果我/etc/inputrc将以下行添加到my (将Tab键重新映射到内置menu-complete函数):

Tab: menu-complete
Run Code Online (Sandbox Code Playgroud)

然后shell的行为发生变化:要完成的单词被替换为"inline",其中包含可能完成列表中的单个匹配,如果我再次按Tab键,则该单词将替换为下一个匹配.

我发现这很有用,但我仍然希望保留传统的自动完成功能并将其绑定到组合键Ctrl + Tab.所以我/etc/inputrc根据readline库文档的建议将以下行添加到我的文件中:

Ctrl-Tab: complete
Run Code Online (Sandbox Code Playgroud)

然而,加入这一行似乎只能使双方TabCtrl-Tab调用传统complete功能.

有谁知道我做错了什么?

提前致谢!

bash bash-completion

20
推荐指数
3
解决办法
1万
查看次数

在Jest中,我怎样才能使测试失败?

我知道我可以从测试中抛出错误,但我想知道是否有像fail()Jasmine提供的全局方法?

javascript jestjs

17
推荐指数
4
解决办法
1万
查看次数

如何使用 Jest 和 TypeScript 监视 ES6 类的方法?

我正在尝试监视我手动模拟的 ES6 类的方法。

我正在关注官方 Jest 文档,该文档仅针对 JavaScript。

这是我的代码:

// sound-player.ts
export default class SoundPlayer {
  foo: string

  constructor() {
    this.foo = 'bar'
  }

  playFile(fileName: string) {
    console.log(`Playing sound file: ${fileName}`)
  }
}
Run Code Online (Sandbox Code Playgroud)
// __mocks__/sound-player.ts
export const mockPlayFile = jest.fn()

const mock = jest.fn().mockImplementation(() => {
  return { playFile: mockPlayFile }
})

export default mock
Run Code Online (Sandbox Code Playgroud)
// sound-player-consumer.ts
import SoundPlayer from './sound-player'

export default class SoundPlayerConsumer {
  soundPlayer: SoundPlayer

  constructor(soundPlayer: SoundPlayer) {
    this.soundPlayer = soundPlayer
  }

  playSomethingCool() {
    this.soundPlayer.playFile('something-cool.mp3')
  }
}
Run Code Online (Sandbox Code Playgroud)
// …
Run Code Online (Sandbox Code Playgroud)

typescript jestjs ts-jest

7
推荐指数
1
解决办法
1068
查看次数

在Node.js中的setTimeout()回调中绑定`this`

在Node.js中,传递给的回调内部setTimeout(),this似乎绑定到自己timeoutObject返回的setTimeout()(在严格模式和非严格模式下!):

var timeoutObject = setTimeout(function () {
    console.log(this === timeoutObject); // true
}, 0);

var timeoutObject = setTimeout(function () {
    'use strict';
    console.log(this === timeoutObject); // true
}, 0);
Run Code Online (Sandbox Code Playgroud)

在浏览器中不是这种情况,它this被绑定(如我所料)到全局对象window(或者undefined在严格模式下).

该文档没有说明这种非标准行为.

为什么是这样?

javascript node.js

5
推荐指数
1
解决办法
478
查看次数

实例重启后,Amazon OpsWorks未安装EBS卷?

我已经配置了一个OpsWorks堆栈并且我的层已经设置好,这样我就可以为每个启动的实例附加一个50 GB的卷.

新的EBS卷可以正确创建,附加并安装到新启动的实例.这是我第一次启动后立即看到的内容:

[root@biscotti ec2-user]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.9G  1.9G  5.9G  25% /
tmpfs           298M     0  298M   0% /dev/shm
/dev/xvdi        50G   33M   50G   1% /srv/www          <---------
[root@biscotti ec2-user]# mount
/dev/xvda1 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/xvdi on /srv/www type xfs (rw,noatime)             <---------
Run Code Online (Sandbox Code Playgroud)

但是,如果我重新启动实例,则不会自动重新装入卷: …

amazon-web-services aws-opsworks

2
推荐指数
1
解决办法
1361
查看次数

关于Node.js中的全局变量

Node.js似乎使用不同的规则将变量附加到global对象,无论是在REPL中还是在脚本中完成.

$ node
> var a = 1;
undefined
> a
1
> global.a
1
> a === global.a
true
Run Code Online (Sandbox Code Playgroud)

如上所示,在REPL中工作时,声明var变量并在global对象上创建一个具有该变量名称的新属性.

但是,在脚本中似乎不是这种情况:

// test.js

var a = 1;
console.log(a);
console.log(global.a);
console.log(a === global.a);
Run Code Online (Sandbox Code Playgroud)

我们来运行脚本:

$ node test.js
1
undefined
false
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

javascript node.js

1
推荐指数
1
解决办法
2531
查看次数