小编yaw*_*awn的帖子

有没有办法在 MacOS 上的终端上使用正常的键盘文本选择?

在过去的 10 年里,我已经习惯使用alt/ \xe2\x87\xa7/\xe2\x8c\x98键操作文本。例如,alt+\xe2\x86\x90跳回一个单词,alt++选择该单词,+跳到行尾,等等\xe2\x87\xa7\xe2\x86\x90 \xe2\x8c\x98\xe2\x86\x92

\n

我知道终端有不同的约定,并且历史上是第一位的,但我已经习惯了这些快捷方式,它们工作得很好并且在其他地方都可以工作。有没有办法获得相同的控件来选择和操作终端中的文本?

\n

我看到了以下问题:

\n\n

但它们只涉及移动光标,而不涉及选择。

\n

macos terminal

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

是否可以用Javascript触发浏览器的选项卡加载动画(旋转器)?

在 SPA/AJAX 网站中,在页面之间导航时,仅获取页面的修改部分。然后,这些部分在同一页面内就地替换旧部分。因此,页面加载 \xe2\x80\x93 上显示的浏览器内置加载指示器 \xe2\x80\x93 不会被触发。许多网站都包含一个自定义进度条(例如https://ricostacruz.com/nprogress/),以清楚地表明正在发生提取。\n我想知道是否有任何方法可以使用内置浏览器\ 的指示符(例如 Chrome 中的“选项卡微调器”)。

\n

javascript browser loading

8
推荐指数
0
解决办法
1664
查看次数

将 Javascript 对象转换为代理(而不是其引用)

我可以获取一个 Javascript 对象o并从中创建一个新的 Proxy 对象:

let p = new Proxy(object, { ... })
Run Code Online (Sandbox Code Playgroud)

但是有没有办法改变现有对象引用以跟踪原始对象的更改?特别是,有没有办法可以从外部源跟踪对象上新键的添加?

javascript mutation es6-proxy

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

在 Python 中,有没有办法保存/转储/序列化 PDB 调试会话?

我一直在使用 Python 程序,这些程序需要几个小时才能完成,但偶尔会崩溃。为了调试,到目前为止,我一直在添加条件断点,每当出现问题时,这些断点都会让我进入 PDB 会话。这很好,因为查明问题的确切原因很难,交互式会话让我可以探索整个程序(包括所有堆栈帧等)。

唯一的问题是,如果我不小心关闭或崩溃了我的调试会话,我需要再次启动整个程序!达到我的断点需要几个小时!我会真的真的像序列化PDB会话,并重新打开它多次的方式。这样的东西存在吗?我已经研究了 dill 来序列化一个解释器会话,不幸的是我的几种类型都无法序列化(它对代码更改也不是很健壮)。谢谢!

python debugging serialization dump pdb

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

在 Rust 中,当装箱作为泛型参数传递的值时,为什么需要“静态”生命周期界限?

我正在尝试编写一个构造函数,该函数采用通过参数实现某些特征的通用值,然后将其装箱(重点是然后用这些框初始化某些内容,但以下示例已简化):

struct Struct {}

trait Trait {}

impl Trait for Struct {}

fn f(arg: impl Trait) -> Box<dyn Trait> {
    Box::new(arg)
}

fn main() {
    let x = Struct {};
    f(x);
}
Run Code Online (Sandbox Code Playgroud)

在这里,编译器抱怨说它arg可能活得不够长。这对我来说非常有意义,因为唯一的要求argimpl Trait,这意味着它实际上可能是实现该特征的引用,在这种情况下它不能被安全地装箱。

让我困惑的是以下解决方案,添加了一个'static界限:

fn f(arg: impl Trait + 'static) -> Box<dyn Trait> {
    Box::new(arg)
}
Run Code Online (Sandbox Code Playgroud)

现在,它当然可以工作,但原则上我们现在只能在'static生命周期内传递值。x然而,编译器让我毫无问题地通过。

更具体地说,这是我的问题:

  1. 没有x生命周期,驻留在堆栈上?为什么可以将它传递给具有生命周期限制的fwhen ?这些界限只涉及引用的生命周期吗?arg'static
  2. 这个解决方案通常有效吗?或者我会遇到编译器拒绝我的堆栈分配参数的情况吗?
  3. 有没有更好的方式来表达“任何隐含类型Trait不是引用的类型?”

请注意,1)主要由Why does Rust require a `'static`lifetime …

lifetime rust box

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

图书馆作者选择的子类型的最佳选择是什么?为什么?

我有两种类型,A并且B,它们共享一个通用的接口T.我想编写可以同时使用AB通过接口工作的函数T.

在C++中,我会T是两者的一个抽象超AB,和写入功能接受类型的参数T.

在Rust,似乎我有两个很好的解决方案.

枚举

enum T { 
    A { /* ... */ },
    B { /* ... */ },
}

impl T {
   fn method(&self) {
       match *self {
           // ... 
       }
   } 
}
Run Code Online (Sandbox Code Playgroud)

在方法中T,我可以匹配变体以专门化类型,然后在访问变体成员时写下我想要的任何内容.然后我可以编写T直接接受类型参数的函数:

fn f(t: T) {
    // I can use t.method here
}
Run Code Online (Sandbox Code Playgroud)

性状

trait T {
    // ...
}

struct A { …
Run Code Online (Sandbox Code Playgroud)

polymorphism enums traits subtype rust

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

如何安全地将道具注入React儿童?

我正在构建一个React组件,该组件会延迟其子级的卸载以为其设置动画。卸载时,我想传入一个额外的道具(例如,数据属性或类名)以处理动画。

这是一般情况的特定实例,在该情况下,我想覆盖子级的某些属性。我已经意识到,遵循模式完全可以实现我想要的功能:

this.props.children.map(child => 
    <child.type key={child.key} 
                ref={child.ref}
               {...child.props} 
               // add my props into children here
               data-leaving={true} />)
Run Code Online (Sandbox Code Playgroud)

我没有返回子元素,而是返回了一个具有相同类型和相同道具的新元素。然后,我可以添加或删除我想要的任何道具!

但是,这没有记录,并且感觉很hacky。我想知道这是否在每种情况下都可以安全使用。

请注意,我知道其他方法(例如,接受一个可以直接返回子级而不是子级的函数),但这提供了迄今为止最方便的接口。

javascript children element reactjs react-props

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