gpt4 book ai didi

TextMate 2 退出键 : how to disable next completion and previous completion

转载 作者:行者123 更新时间:2023-12-03 04:12:22 28 4
gpt4 key购买 nike

默认情况下,在 TextMate 中按 Esc 会循环执行可能的补全(除了关闭对话框之外),这可能会在文档中放入不需要的字符,特别是如果您习惯于在大多数文本编辑器中使用 Esc 作为安全键的话。 (事实上​​,在很多 IDE 中,需要多次按 Esc 键才能关闭自动完成弹出窗口,以便向上和向下箭头键起作用。)

如何禁用此行为,以便在正常文本编辑中,Esc 键不执行任何操作,但关闭对话框仍按预期工作?

最佳答案

什么有效

根据 @matt 的评论,我发现我可以通过覆盖默认键绑定(bind)来完成我需要的操作,如此处所述,https://manual.macromates.com/en/key_bindings.html :

In addition TextMate has a /path/‍to/‍TextMate.app/‍Contents/‍Resources/‍KeyBindings.dict file with some extra key bindings which are specific to TextMate (and thus not appropriate to put in the per user global key bindings file). You can copy this file to ~/Library/‍Application Support/‍TextMate and edit it, this will then take precedence over the bundled file.

我编辑了文件并取出了带有nextCompletion的行,分配给shift+Esc($\033)并分配Esc和shift+Esc来调用noop

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

我在这里了解了 noop 选择器的存在:

退出并重新启动后,TextMate Esc 现在除了关闭对话框之外不执行任何操作。

(显然要改变这一设置,你需要知道 Objective-C 来识别选择器字符串(以及具有“nop”的程序集),这样你就可以猜测应该有一个 noop 选择器。并且你需要知道八进制,因此您可以将 Escape 键识别为 033 = 27。)

<小时/>

我尝试失败的事情

编辑:供那些想知道如何花费 90 分钟来更改一个小设置的人引用。

我找到了这段in the manual ,第 4.2 节末尾:

When you provide your own completion command (or list) you may want to disable the default matches. This can be done by setting disableDefaultCompletion to 1.

我尝试在“首选项”>“变量” Pane 中将disableDefaultCompletion 设置为 1,然后退出并重新打开应用程序。我发现“ bundle ”菜单 >“选择 bundle 项目”并单击“设置”会显示所有设置的列表,包括底部的“disableDefaultCompletion = 1”。看来这并没有什么作用? (被不同 bundle 覆盖的其他设置显示为划掉,而我的设置则不是。)

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

我尝试退出应用程序,然后在命令行上:

defaults write com.macromates.TextMate disableDefaultCompletion true

重新启动并重试(在 JavaScript 模式下按关闭 } 右侧的 Esc),它仍然没有禁用完成。

关于TextMate 2 退出键 : how to disable next completion and previous completion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42304674/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com