【问题标题】:How to enable <C-k> to "scroll up" in code sugguestions/hints with vscode vim instead of using arrow keys?如何使用 vscode vim 而不是使用箭头键在代码建议/提示中启用 <C-k> 来“向上滚动”?
【发布时间】:2022-08-23 02:00:07
【问题描述】:

VScodevim 默认有extension.vim_ctrl+j 映射到 Ctrl+j 允许你导航弹出代码建议窗口(在插入模式下按 Ctrl+Space 触发),如下所示:

它也有 extension.vim_ctrl+k 映射到 Ctrl+k 但是这个绑定不起作用,所以我不能滚动向上弹出代码建议窗口。在插入模式下默认输入digraph,但只需添加类似这样的内容

    {
      \"before\": [\"<C-k>\"],
      \"after\": [\"extension.vim_ctrl+k\"]
    }

到我的settings.json 不起作用,因为虽然它删除了二合字母功能,但据我了解,每当我现在在插入模式下按 Ctrl+k 时,VSCode 都会查询settings.json,找到到 \"extension.vim_ctrl 的映射+k\" 在某种无限循环中将其指向settings.json

vim 中的:h i_ctrl-j 显示此键绑定将映射到 \"Begin new line\" 所以看起来 VScode 将 \"Begin new line\" 解释为导航插入模式下的弹出窗口,而不是通常的 vim 行为,即创建新行并将光标移到那里,尽管不确定这是如何工作的。无论如何,我找不到一个等效的 vim 命令,也许 VSCode 可以用来在弹出窗口中向上滚动。任何帮助将非常感激!

    标签: visual-studio-code vscodevim


    【解决方案1】:

    我通过复制现有的 ctrl+pctrl+n 的默认键绑定来完成这项工作,默认情况下,它们在整个 VSCode 中用于上下滚动。

    我在我的keybinds.json 文件中使用了alt,但您可以轻松地将其替换为ctrl 以实现您想要的

    键绑定.json

    // Down Motion
    
    {
      "key": "alt+j",
      "command": "cursorDown",
      "when": "textInputFocus"
    },
    {
      "key": "alt+j",
      "command": "showNextParameterHint",
      "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
    },
    {
      "key": "alt+j",
      "command": "selectNextSuggestion",
      "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
    },
    {
      "key": "alt+j",
      "command": "list.focusDown",
      "when": "listFocus && !inputFocus"
    },
    {
      "key": "alt+j",
      "command": "workbench.action.quickOpenSelectNext",
      "when": "inQuickOpen"
    },
    
    // Up Motion
    {
      "key": "alt+k",
      "command": "cursorUp",
      "when": "textInputFocus"
    },
    {
      "key": "alt+k",
      "command": "showPrevParameterHint",
      "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
    },
    {
      "key": "alt+k",
      "command": "selectPrevSuggestion",
      "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
    },
    {
      "key": "alt+k",
      "command": "list.focusUp",
      "when": "listFocus && !inputFocus"
    },
    {
      "key": "alt+k",
      "command": "workbench.action.quickOpenSelectPrevious",
      "when": "inQuickOpen"
    }
    

    【讨论】:

      猜你喜欢
      • 2018-01-04
      • 1970-01-01
      • 2022-10-19
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多