Итак, я объявляю код вроде:
var http = require('http'), http.createServer(function(req, res) { ... }
Vim выделит var, но как я могу выделить http, которая является переменной?
var
http
Могу ли я использовать ctags с некоторым плагином для этого?
Ваши ожидания слишком высоки.
В вашем примере http не является ключевым словом или любым другим языковым элементом. Это только произвольное имя переменной, которое могло бы быть wha7ever или someThing_else. Как таковой, он не выделяется Vim в конфигурации по умолчанию.
wha7ever
someThing_else
Вам нужно найти файл синтаксиса JavaScript с поддержкой узлов в vim.org или изменить существующий, добавив новую (возможно, очень сложную) группу синтаксиса.
Остерегайтесь "эффекта рождественской елки": слишком много подсветки синтаксиса может быть хуже, чем недостаточно.
Vim не может этого сделать, потому что это не IDE. Он не анализирует ваш javascript (или любой другой код), который необходим для этого.
Может быть, есть плагин, который делает это, но я думаю, что это будет очень медленно.