2014-01-16 3 views
0

Мне нравится плагин Cntrl-P, но иногда он очень медленный и делает некоторые глупые решения. Поэтому я хотел отредактировать плагин. В принципе, я хочу ограничить его поиск. Чтобы сделать это, я хотел установить тайм-аут около 50 миллисекунд перед поиском после ввода. Кроме того, я хочу отключить поиск при вводе обратного пространства.В vimscript, как бы вы установили таймаут после ввода пользователем (в cntrl-p плагин)?

Немного копаться и искать в Интернете ничего не сделал для меня, поэтому, надеюсь, здесь есть некоторые гуру, которые точно знают, как это сделать.

Спасибо!

+2

Возможно, вам нужно открыть диалог между вами и разработчиком плагина CtrlP. На данный момент в сценарии vim нет таймеров. Я также сомневаюсь, что вы действительно хотите отключить поиск в обратном пространстве. Поскольку это кажется проблемой производительности, почему бы не взглянуть на CommandT, поскольку она больше ориентирована на производительность. –

+0

Точно, открытие проблемы в треевом вопросе плагина - это путь. – romainl

ответ

1

Как уже упоминалось в комментариях, вы должны сотрудничать с автором плагина, чтобы попытаться достичь этого. Поддержание вилки - это большая работа и с фрагментацией пользовательской базы, вы повредите всех пользователей плагинов (которые теперь должны решить, какую функцию использовать).

Любой вид таймаута будет трудно реализовать. В чистом Vimscript это почти невозможно, так как большинство функций (например, glob(), которые могут использоваться CtrlP для извлечения списка файлов) не прерываются; Vimscript является однопоточным. Единственный вариант - разделить работу, переданную функции на более мелкие куски. То же самое относится и к внешним командам.

+0

+1 для второго абзаца. Многопоточность трудно сделать с vimscript. также очень хорошей точкой является пример 'glob()'. это объясняет, почему 'ctrl-c' не может даже сразу« остановить »поиск ctrl-p при нажатии ctrl-p под большим режком, например' $ Home или/' – Kent