Насколько я помню, Visual Studio и TextMate используют tab для завершения кода. В Visual Studio всплывающее меню intellisense появляется, когда вы начинаете печатать, а вкладка выступает в качестве подтверждения выбора.
В TextMate вы начинаете вводить часть команды, а затем нажимаете клавишу Tab, чтобы активировать связанный с ней «пакет». Связанный пакет обычно генерирует фрагмент кода и заполняет любые динамические части фрагмента при вводе.
Если подумать, большинство командных строк также работают таким образом, автоматически заполняя имена файлов и пути при нажатии клавиши табуляции после ввода нескольких символов.
EDIT: Вы говорите, что вкладки необходимы для переключения полей в веб-интерфейсе, но вы можете попытаться перехватить событие клавиатуры в текстовом поле и проверить, начали ли они вводить макрос. Если они есть, выполните автозаполнение и проглотите ключ, вернув false; если нет, просто дайте команде всплыть.