2013-03-14 71 views
31

在崇高的文本3,我要禁用进入键选择从自动完成的项目降了下来,并且只允许标签键这样做。如何禁用/覆盖自动完成的输入键?

我发现,在内置Default (OSX).sublime-keymap文件本节:

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

看来,如果我从进入配置中删除此不会在下拉菜单中选择一个项目下来。不幸的是,不建议更改此文件,并且只能在我的User文件中覆盖它。我不认为我实际上可以在不修改.app内容的情况下编辑它。

我试图覆盖它通过删除不同的部分,也删除除了"keys": ["enter"],但似乎没有任何工作。

如何在不修改内置Default (OSX).sublime-keymapUser/Default (OSX).sublime-keymap文件的情况下实现此目的?

回答

50

我从来没有使用过崇高的文本3,但我不认为以下的,因为崇高的文本2

你想达到什么实际上是崇高文本的标准功能发生了变化。你只需打开它。

这条线从你引用的代码...

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

...的意思是“只有当所谓的‘auto_complete_commit_on_tab’设置被设置为false,执行命令”。所以只需打开该设置即可。

在默认/ Preferences.sublime设置:

// 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在用户/ Preferences.sublime设置。这两个提到的文件都可以通过首选项菜单访问。

+9

我*爱*这个设置的描述“这是更好的,如果这个设置是真的,但我们将默认设置为false” – cimmanon 2013-06-27 17:33:45

+0

听起来像是因为它需要时间来习惯:“启用推荐使用Tab键,但需要很短时间才能习惯。“ http://www.sublimetext.com/docs/2/auto_complete.html – 2015-12-30 23:53:42

10

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