小编yar*_*ina的帖子

接受部分自动完成

我最近给自己买了一台新的 Windows 11 笔记本电脑,并开始探索 powershell。以前从未在 Windows 上使用过它,但我是 Mac 的频繁用户,zsh所以并不是全新的。

\n

我将 Powershell 升级到7.2.1,但注意到我习惯使用 Oh My Zsh 的自动建议类型功能丢失了。经过一番搜索后,我安装了PSReadLine,并使用以下命令设置了我的个人资料:

\n
Import-Module PSReadLine\n\nSet-PSReadLineOption -PredictionSource History\n\nSet-PSReadLineOption -HistorySearchCursorMovesToEnd\nSet-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward\nSet-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward\n\nSet-PSReadLineKeyHandler -Key Tab -Function Complete\n
Run Code Online (Sandbox Code Playgroud)\n

这比以前好多了,但我注意到我不能部分接受自动完成。

\n

例如,这是我的历史的一部分:

\n
New-item \xe2\x80\x93type file \xe2\x80\x93force $profile\n
Run Code Online (Sandbox Code Playgroud)\n

如果我现在尝试创建一个文件test-file,然后开始输入New-Item,我确实得到了建议。我想接受直到 结束-force,或者可能直到file。无论我尝试什么组合键,这种情况都不会发生(徒劳地尝试了Ctrl+ \xe2\x86\x92Shift+ \xe2\x86\x92Alt+ \xe2\x86\x92Fn+ )。\xe2\x86\x92

\n

当然,我可以接受完整的建议并删除我不需要的内容。虽然对于这个例子来说,这确实无关紧要,但对于仅在初始部分出现匹配的长命令来说,这会很烦人。所以,我的问题是部分接受建议的组合是什么,或者如果需要单独启用,我该怎么做? …

windows powershell psreadline windows-11 powershell-7.2

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

向量的每个元素上的ifelse

看看这篇文章,我认为它ifelse是矢量化的f(c(x1, x2, x3)) = c(f(x1), f(x2), f(x3))

因此,我认为z1(下方提供的)代码是否会对vector的每个元素执行以下操作y

  • 测试它是否统一。
    • 如果,请从{1、3、5、7、9}中抽取一个随机数。
    • 如果为NO,则从{0,2,4,6,8}中抽取一个随机数。

但是,不幸的是,它没有做到这一点。它为每种情况生成一次,并始终返回该非常随机的数字。

我到底在哪里做错了?还是实际上是预期的行为ifelse

只是要注意,如果我在内部将其用作包装函数,则会sapply得到预期的输出z2(从某种意义上来说,z1观察每种情况只发生一次是不够的),如下所示。

y <- rbinom(n = 20,
            size = 1,
            prob = 0.5)

z1 <- ifelse(test = (y == 1),
             yes = sample(x = c(1, 3, 5, 7, 9),
                          size = 1),
             no = sample(x = c(0, 2, 4, 6, 8),
                         size = 1))

z2 <- …
Run Code Online (Sandbox Code Playgroud)

if-statement r

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