【问题标题】:How to disable/override the enter key for autocomplete?如何禁用/覆盖自动完成的回车键?
【发布时间】:2013-03-03 13:34:03
【问题描述】:

在 Sublime Text 3 中,我想禁用 enter 键以从自动完成下拉菜单中选择一个项目,并且只允许 tab 键这样做。

我在内置的Default (OSX).sublime-keymap 文件中找到了这个部分:

{ "keys": ["enter"], "command": "commit_completion", "context":
    [
        { "key": "auto_complete_visible" },
        { "key": "setting.auto_complete_commit_on_tab", "operand": false }
    ]
},

似乎如果我从配置中删除它 enter 将不会在下拉列表中选择项目。不幸的是,不建议更改此文件,仅在我的User 文件中覆盖它。如果不修改.app 的内容,我认为我实际上无法编辑它。

我试图通过删除不同的部分来覆盖它,并且还删除了除 "keys": ["enter"] 之外的所有内容,但似乎没有任何效果。

如果不修改内置的 Default (OSX).sublime-keymap 并且只修改 User/Default (OSX).sublime-keymap 文件,我将如何实现这一目标?

【问题讨论】:

    标签: autocomplete sublimetext3 keyboard-shortcuts sublimetext


    【解决方案1】:

    您可以将其分配给不存在的命令。尝试将以下内容添加到User/Default (OSX).sublime-keymap

    { "keys": ["enter"], "command": "noop", "context":
        [
            { "key": "auto_complete_visible" },
            { "key": "setting.auto_complete_commit_on_tab", "operand": false }
        ]
    }
    

    如果您安装/编写具有命令noop 的插件,您将需要更改此命令。

    编辑

    Lydell 的解决方案更好:) 忘记了那个设置(虽然它是在上下文中,所以我应该知道......)。猜猜我的答案是更通用的“如何禁用键绑定”。

    【讨论】:

      【解决方案2】:

      我从未使用过 Sublime Text 3,但我认为自 Sublime Text 2 以来以下内容没有改变。

      你想要实现的其实是 Sublime Text 中的一个标准特性。你只需要打开它。

      您引用的代码中的这一行……​​

      { "key": "setting.auto_complete_commit_on_tab", "operand": false }
      

      … 表示“仅当名为 'auto_complete_commit_on_tab' 的设置设置为 false 时才执行命令”。因此,只需打开该设置即可。

      在 Default/Preferences.sublime-settings 中:

      // By default, auto complete will commit the current completion on enter.
      // This setting can be used to make it complete on tab instead.
      // Completing on tab is generally a superior option, as it removes
      // ambiguity between committing the completion and inserting a newline.
      "auto_complete_commit_on_tab": false,
      

      "auto_complete_commit_on_tab": true 放入 User/Preferences.sublime-settings 中。这两个文件都可以通过“首选项”菜单访问。

      【讨论】:

      • 喜欢这个设置的描述“如果这个设置为真更好,但我们将默认设置为假”
      • 听起来是因为需要时间来适应:“建议在 Tab 上启用 Commit,但需要很短的时间来适应。” sublimetext.com/docs/2/auto_complete.html
      • tab 对我来说比enter 更有意义;大约需要 2 秒才能适应。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      • 2012-02-17
      • 2021-12-13
      • 2017-07-21
      • 1970-01-01
      • 2013-06-01
      • 2013-03-14
      相关资源
      最近更新 更多