2017-02-17 41 views
-1

默认情况下,按下TextMate中的Esc键可循环显示可能的完成项(除了关闭对话框外),这可以在文档中放入不需要的字符,特别是在使用Esc是大多数文本编辑人员的安全钥匙。 (事实上​​,在很多的IDE,按Esc很多需要接近自动完成弹出窗口,这样的上下方向键的作用。)TextMate 2 Escape键:如何禁用下一个完成和上一个完成

如何在普通的文本编辑禁用此行为,所以Esc键什么也不做,但关闭对话框仍然按预期工作?

+1

http://lists.macromates.com/textmate/2017-February/040243.html – matt

+0

请不要关闭这个问题或downvote它没有说明为什么。我正试图在应用中设置一个简单的首选项,并希望得到答案。那些没有阅读的人看到了漫不经心的问题,但没有看到这是一个可以回答的问题。 –

回答

2

什么工作

基于评论来自@马特,我发现,我可以做什么,我需要通过覆盖默认键绑定,这里所提到的,https://manual.macromates.com/en/key_bindings.html

此外TextMate的有/path/to/TextMate.app/Contents/Resources/KeyBindings.dict文件带有一些特定于TextMate的额外键绑定(因此不适合放入每个用户的全局键绑定文件)。您可以将此文件复制到〜/ Library/Application Support/TextMate并对其进行编辑,然后这将优先于捆绑文件。

我编辑的文件,并拿出与nextCompletion行,分配到Shift + Esc键($ \ 033)和分配都Esc键和Shift + Esc键调用空操作

"\033"  = "noop:"; 
"$\033" = "noop:"; 

我了解了在空操作选择的存在,在这里:

quitt后重新启动TextMate Esc现在除了关闭对话框之外什么都不做。 (显然要改变这一个设置,你需要知道Objective-C识别选择器字符串,(和有'nop'的程序集),所以你可以猜测应该有一个noop选择器,而且你需要知道八,让你认识到退出键033 = 27)


事情我尝试失败

编辑:对于人们想知道如何能需要90分钟就换一个小设置参考。

我发现这段in the manual,在第4.2节的末尾:

当你提供你自己完成的命令(或列表),你可能要 禁用默认匹配。这可以通过设置 disableDefaultCompletion需做1

我试图在首选项>变量窗格中设置disableDefaultCompletion为1,退出并重新打开应用程序。我发现Bundle菜单> Select Bundle Item并点击Settings会显示所有设置的列表,包括我底部的disableDefaultCompletion = 1。显然这没有做任何事情? (被不同捆绑覆盖的其他设置显示为划掉,我的设置不是。)

我还搜索了http://github.com/textmate/textmate repo为字符串disableDefaultCompletion,它显示在搜索结果中,所以这是功能应该存在的地方。

我想退出应用程序,然后在命令行:

默认写com.macromates.TextMate disableDefaultCompletion真正

重振并再次尝试(按Esc键结束之权}在JavaScript模式下),它仍然没有禁用完成。

+0

太棒了,非常感谢。我也讨厌这个功能,但我住了几个月,现在我终于放弃了,试图修复它,但没有这样做。幸运的是,我找到了你的帖子。我只是补充说,我没有在文件上的\ 033行,我不得不将它添加到(我只有$ \ 033行,我把它的内容替换为noop)。 – rottz