在 PHP 数组中按下制表符时,Sublime Text 3 中的自动完成错误
Posted
技术标签:
【中文标题】在 PHP 数组中按下制表符时,Sublime Text 3 中的自动完成错误【英文标题】:Bad autocompletion in SublimeText3 when pressing tab in PHP array 【发布时间】:2014-01-04 04:12:57 【问题描述】:我正在使用 SublimeText3。
当我在php
中的array
中工作时,按Tab
提出的自动完成功能让我非常恼火。
我只是想添加一些表格,但每次我按Tab
,sublimetext 都会向我提出建议:
array(<list>)
Create a PHP Array.
如果再次按下Tab
,他就会使命题生效并写入文件<list>
。
我已经安装了这个插件:
"installed_packages":
[
"Alignment",
"ApacheConf.tmLanguage",
"BracketHighlighter",
"Comment-Snippets",
"Comments Aware Enter",
"eZ Publish Syntax",
"html5",
"jQuery",
"LESS",
"SublimeCodeIntel",
"sublimelint",
"Symfony2 Snippets",
"Theme - Soda",
"Twig"
]
如果有人知道如何禁用或纠正这个糟糕的提议?
谢谢。
【问题讨论】:
我之前在包和自动完成方面遇到过问题。相似,但不一样。我认为我没有您拥有的任何包裹,但我最终删除了一两个,直到它消失为止。既然你知道你有哪些,你可以尝试删除一两个,看看问题是否仍然存在并重复直到它消失。此外,您可能会从sublime forums 获得更好的结果,因为他们只专注于这个软件而不是所有的编程。 我没有答案,但这是由 SublimeCodeIntel 引起的。正如您所指出的,这令人非常沮丧。 我也很烦这个。除了试图摆脱这个(因为这似乎几乎不可能)之外,我没有更好的建议,而是用不同或更有用的东西覆盖这个功能?我不知道如何或做什么可以做到这一点,但如果它有助于阻止这种 事情的发生,只需从不同的角度看待它。或者可能有人可以解释 应该做什么,也许我只是用错了。 很高兴发现这个问题得到了回答。我的一天充满了数组,并且迅速发展了与数组/标签相关的愤怒。宁静! 【参考方案1】:刚开始使用 Sublime Text 3,这个问题困扰了我几个星期。即使使用 "auto_complete_commit_on_tab": false 和 "tab_completion": false,它仍然存在。我最终在 Sublime 论坛中查找并找到 this thread,这建议您将此代码添加到您的 Key Bindings:
"keys": ["tab"], "command": "insert", "args": "characters": "\t", "context":
[
"key": "auto_complete_visible" ,
"key": "setting.tab_completion", "operator": "equal", "operand": false
]
它实质上会重新映射您的 tab 键以强制使用 tab 而不是允许 sn-p 自动完成工作。
【讨论】:
这个解决方案很有帮助,但它会停用我所有的自动完成功能,我只想停用这个特定的自动完成功能,而不是全部。 谢谢谢谢谢谢!这让我发疯了。需要注意的是 "tab_completion": false 仍然需要设置它才能工作。【参考方案2】:2014 年 1 月 29 日更新
在 Github 上,有人找到了比我之前发布的更好的解决方案。 New Solution.
打开 your_packages_folder/SublimeCodeIntel/codeintel2/tree_php.py 并将数组添加到第 140 行附近的工具提示忽略数组。
php_ignored_calltip_expressions = ("if", "elseif",
"for", "foreach",
"while",
"switch",
"array"
)
旧解决方案
我找到了temporary solution on github。
注释掉或删除 SublimeCodeIntel/codeintel2/tree_php.py 中的第 100 和 101 行
"array": "array(<list>)\n"
"Create a PHP array.",
然后在 OS X 上删除用户目录中的 ~/.codeintel 文件夹,不确定此缓存在 Windows 上的位置。
【讨论】:
SublimeCodeIntel/codeintel2/tree_php.py 在哪里?到处都找不到 如果你使用OSX,你可以试试~/Library/Application Support/Sublime Text 3/Packages/SublimeCodeIntel/libs/codeintel2/tree_php.py 在 Win7 上,我在 SublimeCodeIntel/libs/codeintel2/ 中找到了该文件。我删除了这些行并删除了 .codeintel 但它没有修复它。 我跪在地上哭了。 @aaronbauman 我通过包控制安装了这个,上面的更改将起作用,它只需要在更新通过时覆盖更改。这很痛苦,但它解决了问题,我认为这是值得的。以上是关于在 PHP 数组中按下制表符时,Sublime Text 3 中的自动完成错误的主要内容,如果未能解决你的问题,请参考以下文章
如何强制 Sublime Text 每个制表符缩进两个空格?