2009-10-10 5 views
1

Кто-нибудь знает, как заставить TextMate искать внешний файл (или даже файлы, содержащиеся в проекте TextMate), с помощью которого выполняется выполнение слова?Завершение с использованием внешнего файла или файла, содержащегося в проекте?

я кодирование некоторых вещей на C64 (используя TextMate писать код), и у меня есть внешний файл, содержащие ярлыки для всех аппаратных регистров/Kernal подпрограммы, например

VIC2InteruptStatus = $D019 

Было бы очень удобно, чтобы иметь возможность печатать, скажем, «VIC2I», затем нажмите клавишу для завершения слова и найдите TextMate для совпадений во внешнем файле библиотеки. Вместо того, как мне нужно сделать это в данный момент, открыв файл библиотеки и скопируйте в него имена регистра в мой код.

ответ

1

После некоторых значительных проб и ошибок я получил эту работу .... вроде.

Прежде всего, вам нужен соответствующий пакет для вашего языка/типа файла. Затем в этом комплекте вам нужно использовать редактор Bundle, чтобы добавить новое «предпочтение». Назовите его, как вам нравится, а затем перейдите в область редактирования и добавьте это;

{completeCommand = 'grep -oh "\ w * $ {TM_CURRENT_WORD} \ w *" FILESPEC | сортировать | uniq ';}

где FILESPEC - это либо один файл, содержащий ключевые слова, которые вы хотели бы предложить для завершения слова.

Закройте редактор Bundle.

Теперь, если вы начинаете вводить слово, находящееся в файле FILESPEC, нажмите ESC (или любую другую клавишу, на которую у вас завершено отображение завершенности), а TextMate предложит слово в алфавитном порядке. Продолжайте нажимать ESC для выполнения всех совпадений (SHIFT + ESC идет назад).

Что-то, что я не мог понять, - это сделать регистр поиска нечувствительным. Вы можете использовать опцию -i в GREP, но опция -o переопределяет ее. В идеале, если вы набрали;

ком Com COM

было бы найти все слова во внешнем файле, которые начинаются с буквы С, О, т. Вместо этого, если вы наберете «COM», он будет соответствовать только словам, начинающимся с «COM», а не «com» ​​или «Com» и т. Д.

Если кто-то, кто обладает большим мастерством GREP, может понять это, очень благодарен.

+0

Interesting; Вы всегда можете идти ядерным путем и погружаться в perl. Например, это нечувствительность к регистру для бит «/ i»: $ echo 'VIC2InteruptStatus = $ D019' | perl -lane 'print join "\ n", grep/c2i/i, @F' | сортировать | uniq –

+0

@Neil - В чем преимущество использования пользовательского списка завершения слов в этом методе (с использованием внешнего файла), в отличие от простого ввода списка слов внутри предпочтения в textmate? Это использование Грепа? Кроме того, какой тип файла вы используете для списка слов? Это просто список, разделенный пробелом? – stefmikhail

 Смежные вопросы

  • Нет связанных вопросов^_^