用于在不工作的窗格之间切换的vim-mode-plus键映射

时间:2017-07-21 06:04:34

标签: atom-editor

我已经安装了 vim-mode-plus 软件包,并在 keymap.cson 文件中添加了以下keymap绑定。

 'atom-text-editor.vim-mode-plus.normal-mode':
   'ctrl-j': 'focus-pane-or-panel:focus-below'
   'ctrl-k': 'focus-pane-or-panel:focus-above'
   'ctrl-h': 'focus-pane-or-panel:focus-on-left'

但是我无法在窗格之间切换(我在Windows上)

如果我使用内置键绑定,我可以切换如下:

ctrl-w ctrl-j   window:focus-pane-below Vim Mode Plus   atom-text-editor.vim-mode-plus:not(.insert-mode)

上面是从 Keybindings 搜索结果中复制的原子

1 个答案:

答案 0 :(得分:3)

我认为你没有使用正确的命令名称。如果打开命令调色板( Ctrl Shift P ),则可以搜索"焦点"并找到可用于您尝试做的各种命令。

  • 窗口:上方的焦点窗格
  • 窗口:下方的焦点窗格
  • 窗口:左侧焦点窗格
  • 窗口:焦点窗格右侧

要将这些变为keybind命令名称,请应用以下公式:

  1. 小写一切
  2. 删除:
  3. 之后的空格
  4. 用连字符替换剩余空格
  5. 这给出了keybind命令名:

    • window:focus-pane-above
    • window:focus-pane-below
    • window:focus-pane-on-left
    • window:focus-pane-on-right

    另请注意您指向的工作示例使用的是与您使用的选择器不同的选择器。它使用atom-text-editor.vim-mode-plus:not(.insert-mode)而不是atom-text-editor.vim-mode-plus.normal-mode。这可能是一个更好的选择,因此您的键绑定可以在普通模式以外的模式下工作(例如视觉选择模式)。

    我认为你需要的是:

    'atom-text-editor.vim-mode-plus:not(.insert-mode)':
       'ctrl-j': 'window:focus-pane-below'
       'ctrl-k': 'window:focus-pane-above'
       'ctrl-h': 'window:focus-pane-on-left'
    

    我不确定你是否也想要 Ctrl L 工作,例如

    'ctrl-l': 'window:focus-pane-on-right'