47

在 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

4

2 回答 2

69

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

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

您引用的代码中的这一行……​​</p>

{ "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": trueUser/Preferences.sublime-settings。这两个文件都可以通过首选项菜单访问。

于 2013-04-10T10:59:51.363 回答
11

您可以将其分配给不存在的命令。尝试将以下内容添加到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 的解决方案更好:) 忘记了那个设置(虽然它是在上下文中,所以我应该知道......)。猜猜我的答案是更通用的“如何禁用键绑定”。

于 2013-03-15T00:54:04.240 回答