老实说,在学习 Windows CMD 或 PowerShell 之前,我已经使用 Bash 和 Zsh 很长时间了,PowerShell 的 CUA 样式键绑定(ctrl+箭头逐字移动、ctrl+a 选择整个命令行、ctrl+v 粘贴、ctrl+c 复制等)对我来说仍然更有效率。这是大多数现代编辑器的工作方式。
我喜欢 Vim,但我没有任何足够好的 Vim 模拟。我真的很想在 Bash 或 Zsh(而不是 Emacs 或 Vi)中拥有 CUA 绑定。
这可能吗?
答案1
这在 Bash 中存在,它的ble.sh
,代表 Bash Line Editor.sh。它使 Ctrl + Left/Right 跳转整个单词,Shift + Left/Right 突出显示字符,Ctrl + Shift + Left/Right 执行两者,这些是标准 CUA 绑定。现在它实现的突出显示不同于我们使用鼠标获得的突出显示(这是由您正在使用的终端仿真器实现的),并且它是从 Ctrl + Shift + c 复制的第二个。ble.sh
不实现我所知道的任何复制/粘贴功能。
如果你不喜欢 Ctrl + Shift + c 复制,那么可以考虑使用允许这种重新绑定的终端仿真器,kitty
, 和terminator
是开始的地方。事实上,它看起来kitty
允许您将 Ctrl + c 绑定到,copy_or_interrupt
这听起来正是您想要的。
答案2
对于bash
,这一切都是有记录的这里。有默认绑定,但您可以更改它们,甚至可以定义宏。
答案3
如果你熟悉 PowerShell 并且熟悉 Windows 键绑定,我建议在 Linux 上使用 PowerShell 作为 shell。PowerShell 现在货源充足跨 Linux 发行版,并可以配置为使用您想要的键绑定:
Set-PSReadLineOption -EditMode Windows
Linux 上的默认编辑模式是 Emacs 样式的键绑定。您可以添加上述行来~/.config/powershell/profile.ps1
更改所有新 shell 的设置。