我希望在我使用的所有终端中都具有相同的键盘快捷键。由于它们没有相同的 *nix,并且由于终端可能非常不同,因此我正在寻找一种相当便携的方法来从一个 *nix 终端获取键盘快捷键(至少由标准 Ubuntu 12.04 安装支持)到其他终端(仅限 Bash)。
也就是说,我正在尝试在一个终端中生成命令以在另一个终端上执行,为了使用第二个终端中的相同键盘快捷键。特别是像Alt- Del(删除光标右侧的单词)和Ctrl- Left(将光标向左移动一个单词)之类的东西,在我工作的某些主机上,它们只是打印转义码而不是执行预期的操作。
这也意味着可能会更改.inputrc
目标主机上的 。重要的一点是能够
- 找出我的本地主机上定义了哪些键盘快捷键。
- 查明远程主机是否未定义任何常用快捷方式。
- 将快捷方式定义复制到远程主机。
- 验证快捷方式在远程主机上是否按预期工作。
- 合理确定快捷方式也适用于第三台主机,可能使用非常旧版本的 Bash 和标准工具,例如
grep
和sed
。
答案1
目前的解决方案如下:
bind -p | grep -ve '^$' -e '^#' -e 'self-insert$' | sed -e "s/\(.*\)/bind '\1'/" | tr -s '\n' ';'
这会产生如下一行:
bind '"\C-g": abort';bind '"\C-x\C-g": abort';[...];bind '"\e\C-y": yank-nth-arg';bind '"\ey": yank-pop';
这似乎有效,但我不确定它是否便携。