mik*_*ana 4 powershell keyboard-shortcuts
在使用了几十年的 bash 之后,我已经切换到 Powershell,并且在对我的配置文件进行了一些配置(并添加 PSCX、openssl 和一些其他工具)之后,我总体上很满意。
我在 bash 中怀念的一件事是:
mkdir some-very-long-dir-name
cd (hit ESC then hit _ on the keyboard)
Run Code Online (Sandbox Code Playgroud)
转义下划线是 bash 的“上一个命令的最后一项”。它非常有用 - 在这个追逐中我不必输入很长的目录名称。
是否可以向 powershell 添加键盘快捷键?如何?
如果重要的话,我正在使用 ConEmu 作为我的终端。
Set-PSReadlineKeyHandler -Key \'Escape,_\' -Function YankLastArg\nRun Code Online (Sandbox Code Playgroud)\n\n感谢 @davidbrabant 和 @TheIncorrigible1 指出 PSReadLine:它本身不是答案,但理解 PSReadLine 的工作原理是解决这个问题的关键。
\n\n尽管vibash 是每个 Linux 发行版上的默认编辑器,但它的默认编辑模式是emacs编辑模式。来自bash 文档:
\n\n\n为了在 emacs 和 vi 编辑模式之间交互切换,请使用 \xe2\x80\x98set -o emacs\xe2\x80\x99 和 \xe2\x80\x98set -o vi\xe2\x80\x99 命令(请参阅设置内置)。Readline 默认为 emacs 模式。
\n
这意味着“转义下划线”来自 emacs。
\n\n奇怪的是,PSReadLine 与 bash 不同,默认情况下不使用 emacs 模式。来自PSREADLine 文档:
\n\n\n\n\n要使用 Emacs 键绑定,您可以使用:\n Set-PSReadlineOption -EditMode Emacs
\n
它不是很明确,但这意味着另一种模式是默认的。确认这一点,运行:
\n\nget-PSReadlineOption\nRun Code Online (Sandbox Code Playgroud)\n\n返回:
\n\nEditMode : Vi\nRun Code Online (Sandbox Code Playgroud)\n\n所以有两种解决方案:
\n\nSet-PSReadlineOption -EditMode Emacs\nRun Code Online (Sandbox Code Playgroud)\n\nGet-PSReadlineKeyHandler您可以看到包含标准转义下划线快捷方式的效果:
Escape,_ YankLastArg Copy the text of the last argument to the input\nRun Code Online (Sandbox Code Playgroud)\n\n转义下划线现在可以使用。
\n\n除了更改模式(事实证明我喜欢 vi 键绑定!),您还可以运行:
\n\n Set-PSReadlineKeyHandler -Key \'Escape,_\' -Function YankLastArg\nRun Code Online (Sandbox Code Playgroud)\n\n将其添加到您现有的模式中。
\n| 归档时间: |
|
| 查看次数: |
1942 次 |
| 最近记录: |