Vim не обновляется после запуска Node

1166
mahemoff

Я запускаю :! Node app.js изнутри Vim и после нажатия ctrl-c, чтобы завершить его, нижняя половина окна пуста. Даже нажатие Ctrl-L для обновления не работает.

Это произошло как в OSX 10.6, так и в 10.7, а также с vim по умолчанию для OSX, а также с последней стабильной версией, которую я скомпилировал (vim 7.3). И я попробовал это с iterm, iterm2 и Terminal.app.

Вероятно, не связанный с Node, но если я запускаю такие команды, как "! Ls" или "! Cat%" (для отображения текущего файла), они работают нормально.

1
Вы проверяли, был ли переназначен Ctrl-l? Кроме того, при запуске в фоновом режиме возникает та же проблема: `! Node app.js &` Или вы можете использовать vim на реальном компьютере, а не на iOS;) idbrii 12 лет назад 0
Ctrl-l определенно работает, но он не обновляет часть, которая уже исчезла. Запуск процесса узла в фоновом режиме или даже перенаправление в / dev / null не имеет никакого эффекта. mahemoff 12 лет назад 0
Так что просто запуск узла в фоновом режиме портит ваш экран, даже если весь вывод перенаправлен (stdout и stderr)? Это звучит серьезно безумно. Может быть, скриншот поможет? Что если вы используете `set makeprg = node` и`: make app.js`? idbrii 12 лет назад 0
Я знаю, это безумие. Лучше, чем скриншот, вот скриншот. http://media.shinywhitebox.com/michael-mahemoff/vim-unrefresh Запуск "coffee%" стирает нижнюю треть экрана, даже после нажатия Ctrl-l. Только выбор "v" возвращает его, но очень неловко. (Сначала загрузите с помощью iShowU, извините, он получился таким маленьким, но я думаю, что смысл сделан.) mahemoff 12 лет назад 0

1 ответ на вопрос

1
idbrii

Вы, вероятно, должны использовать :make. (Примечание: это не значит, что вам нужен make-файл.)

Vim's makeнастроен так, чтобы гарантировать, что весь вывод перенаправлен таким образом, чтобы управляющие последовательности (например, установка цвета шрифта) не портили vim. (Вы можете увидеть опции, которые использует при работе.)

Сначала вам нужно будет настроить вашу программу make для вашего интерпретатора вместо make.

set makeprg=node make app.js 

Вы должны получить вывод в окне быстрого исправления ( :copen). Возможно, вы захотите найти правильный errorformatJavascript / Coffee, чтобы он правильно анализировал ошибки. Вот довольно красивый плагин vim-coffee .

Спасибо за предложение. Я понятия не имею, что случилось, но, к сожалению, это был тот же результат, что и раньше. makeprg выполнил свою работу, и сервер запустился, но снова надел экран. mahemoff 12 лет назад 0