gpt4 book ai didi

bash - 向 WSL 自动完成建议添加常用命令

转载 作者:行者123 更新时间:2023-12-04 19:06:05 28 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Multi Level Bash Completion

(2 个回答)


9 个月前关闭。




我一直在学习 JavaScript 库 Sequelize,并注意到 sequelize-CLI 的一些样板代码。例如,要生成一个模型,您经常使用这样的东西: npx sequelize-cli model:generate --name SingularModelNameHere --attributes attribute1Name:datatype, attribute2Name:dataType我的问题是如何将这些类型的“样板”添加到我的 Ubuntu,以便我可以轻松使用选项卡自动完成功能并用适当的代码替换样板?我看过this tutorial ,但是他们使用 host命令本身和 google.com , cyberciti.biz , 和 nixcraft.com是单独的自动完成参数。
有没有办法让我输入 npx sequelize-cli 在我的终端中并使用选项卡自动完成 model:generate --name SingularModelNameHere --attributes attribute1Name:datatype, attribute2Name:dataType样板?
我也想添加其他样板命令。例如,npx sequelize-cli seed:generate --name <descriptiveName>然后如果我输入 npx sequelize-cli s我可以标签自动完成。

最佳答案

有几种方法可以解决此问题,但首先,重要的是要了解“完成”是您的 Linux shell 而非 WSL 的功能。如果你没有改过,bash很可能是您的 shell,因为它是大多数发行版的默认设置。一些常见的替代方案包括 zshfish .
虽然我通常不会在答案中为我最喜欢的 shell“做广告”,但我认为在这种情况下它是合适的,因为 fish shell 中的一大特点是是其出色的开箱即用的补全、建议和缩写系统。
正如评论中提到的omajid,大多数shell可以通过历史搜索在某种程度上完成你想要的。但无论您选择哪种外壳,我都建议添加 fzf并设置其外壳集成。它可以通过极快的模式搜索来加速 Ctrl+R 历史搜索。
您可以输入 npx seq ,按 Ctrl+R,然后根据您之前使用的标志进行过滤。 npx seed使用 Ctrl+R 将显示所有带有 npx 的命令和 seed ,无论它们出现在命令行中的什么位置。
甚至像 seqseed 这样简单的东西Ctrl+R 会找到这些行。
这可以处理您的“多个样板”场景。同样,这可以设置为在 Bash、Zsh 或 fish 中工作。
但是fish也有一个开箱即用的Autosuggestions可以帮助解决此问题的功能。当您键入每个命令时,fish 将“建议”您可以使用 → 或 Ctrl+F 接受的先前键入的命令行。或者,您可以使用 Alt+→ 从上一个命令行一次只接受一个参数。
最后fish内置了Abbreviation可用于此工作流程的支持:

abbr --add seqgen npx sequelize-cli model:generate --name SingularModelNameHere --attributes attribute1Name:datatype, attribute2Name:dataType
abbr --add seqseed npx sequelize-cli seed:generate --name
然后,输入 seqseed后跟空格键将替换 seqseednpx sequelize-cli seed:generate --name , 将光标留在可以添加 <descriptiveName> 的末尾.
此类工作的其他一些命令行编辑技巧。其中一些可以在其他 shell 中找到:


key
功能


Ctrl+W
删除以前的 token 。鱼很聪明,可以使用 / 之类的东西。和 :默认情况下作为标记分隔符,所以如果在 attribute2Name:dataType 之后使用 Ctrl+W , 它只会删除 dataType .

Ctrl+← 和 Ctrl+→
向后和向前跳过 token

Alt+E 或 Alt+V
在您喜欢的 $EDITOR 中编辑当前命令行.

关于bash - 向 WSL 自动完成建议添加常用命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69412224/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com