有没有人知道如何让TextMate搜索外部文件(甚至包含在TextMate“项目”中的文件)来执行文字完成?
我在C64上编写一些东西(使用TextMate编写代码),我有一个包含所有硬件寄存器/内核例程标签的外部文件,例如
VIC2InteruptStatus = $D019
能够输入“VIC2I”然后按下键以完成单词并让TextMate在外部库文件中找到匹配项将非常方便。而不是我现在必须打开库文件并将寄存器名称复制粘贴到我的代码中。
答案 0 :(得分:1)
经过一些相当大的试验和错误后,我得到了这种工作....有点。
您首先需要适合您的语言/文件类型的Bundle。然后在该Bundle中,您需要使用Bundle Editor添加新的“Preference”。根据您的喜好命名,然后跳转到编辑窗格并添加;
{completionCommand ='grep -oh“\ w * $ {TM_CURRENT_WORD} \ w *”FILESPEC |排序| uniq的';}
其中FILESPEC是一个单独的文件,其中包含您希望为完成字词提供的关键字。
关闭捆绑包编辑器。
现在,如果您开始键入FILESPEC文件中的单词,请按ESC(或您已完成映射到的任何键),TextMate将提供按字母顺序排序的单词完成。继续按ESC以循环所有匹配(SHIFT + ESC向后)。
我无法弄清楚的是如何使搜索案例不敏感。您可以在GREP中使用-i选项,但-o选项会覆盖它。理想情况下,如果您输入;
COM COM COM
它会找到外部文件中以字母c,o,m开头的所有单词。相反,如果您键入“COM”,它将只匹配以“COM”开头而不是“com”或“Com”等的单词。
如果有更多掌握GREP的人能够解决这个问题,我将非常感激。