为你的 PowerShell 添加类似 Bash 的自动完成功能
在 PowerShell 中启用更好的自动完成功能
额外奖励:将open
MacOS 中的命令添加到 PowerShell
最后提示:使用新的 Windows 终端
我主要使用 Ubuntu 或 MacOS 进行开发,但最近我改变了方向,因为我需要 Windows 游戏机的强大功能来开始使用 Blender 和 Unreal Engine。
使用 PowerShell 控制台时,我非常怀念 Bash 提供的自动完成功能:
-
当您开始输入命令并点击TabBash 时,它会显示所有以您输入的短语开头的可用命令,然后您可以使用箭头键选择所需的命令。
PowerShell 默认仅立即完成命令,而不会显示所有可用的命令。
-
如果您已经开始输入命令的开头,则可以使用↑/↓循环浏览历史记录,以使用您之前使用过的参数自动完成命令。
PowerShell 还支持使用箭头键循环浏览历史记录,但它会完全忽略您已经输入的内容,并用历史记录中最后使用的命令替换所有内容。
在 PowerShell 中启用更好的自动完成功能

值得庆幸的是,PowerShell 已经内置了此功能,由名为 的模块提供PSReadline
。
您只需在 PowerShell 配置文件中启用它即可(PowerShell 相当于您的.bashrc
)👏:
-
通过在 PowerShell 中直接输入以下命令来打开或创建一个新的PowerShell 配置文件:
# Create profile when not exist if (!(Test-Path -Path $PROFILE.CurrentUserAllHosts)) { New-Item -ItemType File -Path $PROFILE.CurrentUserAllHosts -Force } # Open the profile with an editor (e.g. good old Notepad) ii $PROFILE.CurrentUserAllHosts
-
在编辑器中将以下行添加到配置文件中:
# Shows navigable menu of all options when hitting Tab Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete # Autocompletion for arrow keys Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
-
保存文件并重新打开 PowerShell,现在您可以使用高级自动完成功能。
这要归功于 StackOverflow 用户svick和JerryGoyal,他们在他们的答案中发布了此内容。
额外奖励:将open
MacOS 中的命令添加到 PowerShell
在 MacOS 上,有一个强大的open
命令可以在 Finder(MacOS 的文件资源管理器)中打开文件夹,或者在终端中使用默认应用程序打开文件。PowerShell
也内置了这个命令,它叫做ii
Invoke -Item。
因为我觉得这个术语ii
很难记住,所以我open
给它添加了一个别名,这样在不同平台之间切换时就更方便了。
使用命令向 PowerShell 配置文件添加新别名非常简单New-Alias
,因此只需编辑您的配置文件并添加以下行:
# New-Alias <alias> <aliased-command>
New-Alias open ii
保存它并重新打开您的 PowerShell,并通过在工作目录中键入open .
打开 Windows 资源管理器窗口来测试它。
最后提示:使用新的 Windows 终端
为了让您的 PowerShell 体验更好,您还应该从 Microsoft 商店安装新的 Windows 终端预览版:
https://www.microsoft.com/store/productId/9N0DX20HK701
它提供选项卡和比 Windows 中的默认控制台更好的自定义功能。
我对 PowerShell 还很陌生,所以如果您有其他提高生产力的技巧,我会很高兴您在这里发表评论。💖
鏂囩珷鏉ユ簮锛�https://dev.to/ofhouse/add-a-bash-like-autocomplete-to-your-powershell-4257