Если SnippetsEmu слишком тяжел или амбициозен к тому, в чем Вы нуждаетесь (это было для меня), я записал плагин, который управляет отрывками на основе типа файла. Это даже имеет заполнение клавишей Tab при выборе отрывка!:)
Получают его здесь: snippets.vim
Вы могли бы купить немного повышения скорости за счет памяти. Если вы создаете неизменяемый массив, который перечисляет все созданные Thingys и ссылаетесь на массив с помощью статической переменной, то вы можете проверить существование Thingy вне любой блокировки, поскольку неизменяемые массивы всегда являются потокобезопасными. Затем при добавлении нового Thingy вы можете создать новый массив с дополнительным Thingy и заменить его (в статической переменной) за одну (атомарную) операцию установки. Некоторые новые Thingys могут быть пропущены из-за условий гонки, но программа не должна давать сбой. Это просто означает, что в редких случаях будут созданы дополнительные дубликаты Thingy.
Это не заменит необходимость проверки дубликатов при создании нового Thingy, и он будет использовать много ресурсов памяти, MSDN объясняет, как здесь: http://msdn.microsoft.com/en-us/library/e2zc529c.aspx
Вы можете просто использовать непосредственное окно для вызова вашей функции дампа во время отладки:
MikeDsDumpFxn(whateverStreamIsActiveInThisContext)
Если ваша функция возвращает строку, она будет печатать прямо здесь, как результат в непосредственном окне.