寻找无冲突的跨平台键绑定一致性

tot*_*tte 11 keyboard-shortcuts irssi vim key-binding tmux

我使用 Mac OS X 和 Arch Linux,偶尔通过 ssh 登录到 FreeBSD 和 Debian 服务器。我最喜欢的工具是 zsh、ssh、tmux、git、vim 和 irssi。我在 Mac OS X 上使用 iTerm2,在 Arch Linux 上使用 unicode-rxvt,我也使用 Xmonad 作为窗口管理器。

当前Ctrl+a+n移至 tmux 中的下一个窗口,Alt+right移至 irssi 中的下一个,Cmd+right移至 iTerm2 中的下一个选项卡,Ctrl+w+w移至 vim 中的下一个缓冲区,依此类推. 基本上它只是一团糟,尽管其中一些位于肌肉记忆中,但大多数都没有。我正在寻找什么可能是一致的键绑定方案。

在我看来,我认为操作系统桌面环境和/或窗口管理器应该使用 Cmd/Super/Win,Alt 是 tmux,Ctrl 是 vim 和 irssi。那是在键盘上从右到左;Cmd、Alt、Ctrl 以及以某种层次的方式,OS/DE/WM、多路复用器、编辑器/irc 客户端。

因此,像这样的事情:

Cmd+Left/+Right - 切换工作区 (Xmonad)
Alt+Left+/Right - 切换 tmux 窗口
Ctrl+Left/+Right - 切换 irssi 窗口/vim 缓冲区

Cmd+1 - 切换到工作区 1 (Xmonad)
Alt+1 - 切换到 tmux 窗口 1
Ctrl+1 - 切换到 irssi 窗口 1/vim 缓冲区 1

这可行吗?如果没有,可以使用哪些统一的键绑定?


更新

我画了一张图片(颜色很可怕,我知道)来说明我的想法。我使用 Dvorak 并用 dhtn 替换了 vim hjkl 运动 - 我会写左/下/上/右以使其对那些不使用 vim 的人有意义。让我们将它保留给 iTerm2 而不是整个 OS X 桌面环境(以及 Gnome 和 KDE)。基本上归结为:

cmd+left/right/number用于 Xmonad 中的工作区(或您喜欢的任何窗口管理器)
alt+left/right/number用于 tmux 中的窗口
ctrl+alt+left/down/up/right/number vim中的缓冲区
ctrl+alt+left/right/number for windows in irssi
ctrl+left/down/up/right for home/pg down/pg up/end in vim, irssi and zsh

在此处输入图片说明 在 OS X 中 ctrl+left/down/up/right 已经像上面一样工作,alt+left/right 按单词移动光标,而不是按字符移动光标的 left/right。

这不是相当合乎逻辑和直观吗?我是不是遗漏了什么(键绑定冲突)或者这可行吗?

tot*_*tte 5

我试着把备忘单或参考卡放在一起。在探索了各种可能性之后,我最终做了以下事情:

  1. 从瑞典语键盘切换到英语(国际)键盘,因为后者(在我看来)在编写代码时更胜一筹,并且仍然能够通过 alt+a/+w/+u+a/+o 键入 åäö。
  2. 从 QWERTY 切换到 Dvorak,因为我喜欢按键的定位方式(这里没有科学声明)用于编程目的(看过“Programmer Dvorak”,但这太过分了)。
  3. 将 vim hjkl 运动替换为 dhtn,将 dD 替换为 jJ(助记符:“垃圾”),将 K 替换为 H,将ctrl+w 前缀替换为 ctrl+o
  4. 一些小的添加(以及解除绑定的高级功能以轻松开始)...

TL;DR - 坚持使用可用的前缀,例如在 tmux 中使用 ctrl+a,在 vim 和 irssi 中使用 ctrl+o (Dvorak)/ctrl+s (QWERTY)。这似乎影响最小,并且有点跨平台友好。

vim dvorak 参考卡